From 72c676bdb3813b7a2986930a06df029a82d43108 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 24 Sep 2008 19:17:40 +0800 Subject: [PATCH 1/7] pmon32 for compile on loongson. should enable fpu,otherwise add -msoft-float. make CROSS_COMPILE=mipsel-linux- to compile on x86 make PMONCC=gcc-3.4 to compile on loongson. --- Targets/Bonito2edev/conf/Makefile.Bonito2edev | 26 +- Targets/Bonito2fdev/Bonito/ri.c | 4 +- Targets/Bonito2fdev/Bonito/tgt_machdep.c | 4 +- Targets/Bonito2fdev/conf/Bonito.2fdev.via | 2 +- Targets/Bonito2fdev/conf/Makefile.Bonito2fdev | 27 +- lib/libc/strlen.c | 2 +- pmon/arch/mips/ri.c | 4 +- pmon/cmds/mycmd.c | 257 +++++++++--------- pmon/cmds/newmt/newmt.c | 1 + pmon/cmds/setup.c | 50 ++-- pmon/cmds/test/cpu.c | 67 +++-- pmon/dev/flash_amd.c | 2 +- pmon/dev/flash_sst.c | 2 +- pmon/dev/kbd.c | 2 +- sys/arch/mips/include/va-mips.h | 2 +- sys/dev/pci/em/e1000_pmon.c | 1 + sys/dev/pci/rtl8169.c | 4 +- sys/kern/kern_syscall.c | 12 +- tools/pmoncfg/main.c | 2 +- tools/scripts/pmon.lib.gmk | 2 +- zloader/Makefile.inc | 91 ++----- zloader/genram | 109 ++++---- zloader/genrom | 115 ++++---- zloader/ld.script.S | 4 +- 24 files changed, 376 insertions(+), 416 deletions(-) diff --git a/Targets/Bonito2edev/conf/Makefile.Bonito2edev b/Targets/Bonito2edev/conf/Makefile.Bonito2edev index 03a6f7ff..c28d2269 100644 --- a/Targets/Bonito2edev/conf/Makefile.Bonito2edev +++ b/Targets/Bonito2edev/conf/Makefile.Bonito2edev @@ -17,7 +17,7 @@ # .SUFFIXES: .S .c .o -CROSS_COMPILE =mips-elf- +#CROSS_COMPILE =mips-elf- #CROSS_COMPILE =mipsel-linux- # @@ -25,8 +25,8 @@ CROSS_COMPILE =mips-elf- # AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC ?= $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)ld -m elf64ltsmip -G 0 -static -n -nostdlib +#CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm @@ -37,6 +37,7 @@ RANLIB = $(CROSS_COMPILE)ranlib SIZE = $(CROSS_COMPILE)size OPT?= -O2 + IDENT:=${IDENT} $(shell echo ${IDENT}|sed -n 's/.*-DX\([0-9]\+\)x\([0-9]\+\).*/ -DFB_XSIZE=\1 -DFB_YSIZE=\2 /p') IDENT:=${IDENT} $(shell echo ${IDENT}|sed -n 's/.*-DCONFIG_VIDEO_\([0-9]\+\)BPP.*/ -DFB_COLOR_BITS=\1 /p') @@ -61,18 +62,16 @@ PMONDIR=${S} INCLUDES= -I. -I${S}/include -I./machine -I${S} \ -I${S}/sys/arch/${MACHINE}/include -I${S}/sys \ - -I${TARGET} -I${COMPILEDIR} -nostdinc -#CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ -# -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 + -I${TARGET} -I${COMPILEDIR} -nostdinc -fno-strict-aliasing -fno-pic CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ - -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 + -mmemcpy -mno-abicalls -mips3 -fno-builtin#-march=r4600 #CWARNFLAGS= -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes \ -Wno-uninitialized -Wno-format -Wno-main CWARNFLAGS= -Wall -Wstrict-prototypes \ -Wno-uninitialized -Wno-format -Wno-main CFLAGS= ${DEBUG} ${CWARNFLAGS} ${OPT} -G 0 AFLAGS= -D_LOCORE -G 0 -LFLAGS= -${ENDIAN} -N -G 0 -T../../conf/ld.script -e start +LFLAGS= -N -G 0 -T../../conf/ld.script -e start STRIPFLAGS= -g -S --strip-debug HOSTCC?= ${CC} @@ -86,7 +85,6 @@ LIBM=${MLIB} include ${S}/lib/libz/Makefile.inc LIBZ=${ZLIB} - # compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} # where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix, # capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file @@ -126,8 +124,8 @@ SYSTEM_OBJ= ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${ crtend.o SYSTEM_DEP= Makefile ${SYSTEM_OBJ} SYSTEM_LD_HEAD= rm -f $@ -SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '$${SYSTEM_OBJ}' vers.o; \ - ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o +SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o -L../../../../examples/math/ -lgcc SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ ; \ ${OBJCOPY} -O binary $@ $@.bin @@ -200,10 +198,10 @@ SRCS= ${TARGET}/${SUBTARGET}/start.S \ param.c ioconf.c ri.c ${CFILES} ${SFILES} depend:: .depend .depend: ${SRCS} param.c - ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${TARGET}/${SUBTARGET}/start.S - ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} + ${MKDEP} ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${TARGET}/${SUBTARGET}/start.S + ${MKDEP} -a ${CFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } param.c ioconf.c ${CFILES} ifneq (${SFILES}, "") - ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES} + ${MKDEP} -a ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${SFILES} endif # depend on root or device configuration diff --git a/Targets/Bonito2fdev/Bonito/ri.c b/Targets/Bonito2fdev/Bonito/ri.c index 00c745f7..8207242a 100644 --- a/Targets/Bonito2fdev/Bonito/ri.c +++ b/Targets/Bonito2fdev/Bonito/ri.c @@ -751,11 +751,11 @@ int do_ri (struct pt_regs *xcp) return sig; } break; - default: + default:; } - default: + default:; } diff --git a/Targets/Bonito2fdev/Bonito/tgt_machdep.c b/Targets/Bonito2fdev/Bonito/tgt_machdep.c index d5ea4162..7da3c603 100644 --- a/Targets/Bonito2fdev/Bonito/tgt_machdep.c +++ b/Targets/Bonito2fdev/Bonito/tgt_machdep.c @@ -31,6 +31,7 @@ * */ #include +void tgt_putchar (int); int tgt_printf (const char *fmt, ...) { @@ -355,11 +356,12 @@ void addr_tst2(void); void movinv1(int iter, ulong p1, ulong p2); pcireg_t _pci_allocate_io(struct pci_device *dev, vm_size_t size); +static void superio_reinit(); void initmips(unsigned int memsz) { - +tgt_fpuenable(); #ifdef DEVBD2F_SM502 { /*set lio bus to 16 bit*/ diff --git a/Targets/Bonito2fdev/conf/Bonito.2fdev.via b/Targets/Bonito2fdev/conf/Bonito.2fdev.via index b0d174c4..623709a4 100644 --- a/Targets/Bonito2fdev/conf/Bonito.2fdev.via +++ b/Targets/Bonito2fdev/conf/Bonito.2fdev.via @@ -181,4 +181,4 @@ select http select tcp select inet select tftpd -select e100 +#select e100 diff --git a/Targets/Bonito2fdev/conf/Makefile.Bonito2fdev b/Targets/Bonito2fdev/conf/Makefile.Bonito2fdev index c96a942a..002d0838 100644 --- a/Targets/Bonito2fdev/conf/Makefile.Bonito2fdev +++ b/Targets/Bonito2fdev/conf/Makefile.Bonito2fdev @@ -17,7 +17,7 @@ # .SUFFIXES: .S .c .o -CROSS_COMPILE =mips-elf- +#CROSS_COMPILE =mips-elf- #CROSS_COMPILE =mipsel-linux- # @@ -25,8 +25,8 @@ CROSS_COMPILE =mips-elf- # AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC ?= $(CROSS_COMPILE)gcc +LD = $(CROSS_COMPILE)ld -m elf32ltsmip -G 0 -static -n -nostdlib +#CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm @@ -61,18 +61,16 @@ PMONDIR=${S} INCLUDES= -I. -I${S}/include -I./machine -I${S} \ -I${S}/sys/arch/${MACHINE}/include -I${S}/sys \ - -I${TARGET} -I${COMPILEDIR} -nostdinc -#CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ -# -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 + -I${TARGET} -I${COMPILEDIR} -I${PATH1} -nostdinc -fno-strict-aliasing -fno-pic CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ - -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 + -mmemcpy -mno-abicalls -mips3 -fno-builtin#-march=r4600 #CWARNFLAGS= -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes \ -Wno-uninitialized -Wno-format -Wno-main CWARNFLAGS= -Wall -Wstrict-prototypes \ -Wno-uninitialized -Wno-format -Wno-main CFLAGS= ${DEBUG} ${CWARNFLAGS} ${OPT} -G 0 AFLAGS= -D_LOCORE -G 0 -LFLAGS= -${ENDIAN} -N -G 0 -T../../conf/ld.script -e start +LFLAGS= -N -G 0 -T../../conf/ld.script -e start STRIPFLAGS= -g -S --strip-debug HOSTCC?= ${CC} @@ -86,7 +84,6 @@ LIBM=${MLIB} include ${S}/lib/libz/Makefile.inc LIBZ=${ZLIB} - # compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} # where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix, # capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file @@ -122,12 +119,14 @@ endif # ${SYSTEM_LD_HEAD} # ${SYSTEM_LD} # ${SYSTEM_LD_TAIL} +#SYSTEM_OBJ= ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${LIBZ} \ + SYSTEM_OBJ= ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${LIBZ} \ crtend.o SYSTEM_DEP= Makefile ${SYSTEM_OBJ} SYSTEM_LD_HEAD= rm -f $@ -SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '$${SYSTEM_OBJ}' vers.o; \ - ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o +SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o -L../../../../examples/math/ -lgcc SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ ; \ ${OBJCOPY} -O binary $@ $@.bin @@ -200,10 +199,10 @@ SRCS= ${TARGET}/${SUBTARGET}/start.S \ param.c ioconf.c ri.c ${CFILES} ${SFILES} depend:: .depend .depend: ${SRCS} param.c - ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${TARGET}/${SUBTARGET}/start.S - ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} + ${MKDEP} ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${TARGET}/${SUBTARGET}/start.S + ${MKDEP} -a ${CFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } param.c ioconf.c ${CFILES} ifneq (${SFILES}, "") - ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES} + ${MKDEP} -a ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${SFILES} endif # depend on root or device configuration diff --git a/lib/libc/strlen.c b/lib/libc/strlen.c index a54f42e2..5b2ed061 100644 --- a/lib/libc/strlen.c +++ b/lib/libc/strlen.c @@ -32,7 +32,7 @@ */ #include -int +unsigned int strlen(const char *p) { int n; diff --git a/pmon/arch/mips/ri.c b/pmon/arch/mips/ri.c index 0433bffb..6df66ecb 100644 --- a/pmon/arch/mips/ri.c +++ b/pmon/arch/mips/ri.c @@ -761,11 +761,11 @@ int do_ri (struct pt_regs *xcp) return sig; } break; - default: + default:; } - default: + default:; } diff --git a/pmon/cmds/mycmd.c b/pmon/cmds/mycmd.c index 870002f0..b4d6cb9c 100644 --- a/pmon/cmds/mycmd.c +++ b/pmon/cmds/mycmd.c @@ -40,7 +40,12 @@ int cmd_mycfg __P((int, char *[])); extern char *heaptop; #include +unsigned long strtoul(const char *nptr,char **endptr,int base); #define ULONGLONG_MAX 0xffffffffffffffffUL +int abs(int x) +{ +return x>=0?x:-x; +} unsigned long long strtoull(const char *nptr,char **endptr,int base) { @@ -329,33 +334,37 @@ return -1; static int __syscall1(int type,long long addr,union commondata *mydata) { +union { +long long ll; +int l[2]; +} a; +a.ll=addr; + + switch(type) { case 1: //mydata->data1=*(volatile char *)addr;break; - asm("lbu $2,(%1); - sb $2,(%0) - " - ::"r"(&mydata->data1),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;lbu $2,(%1);" \ + "sb $2,(%0);" \ + ::"r"(&mydata->data1),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 2: //mydata->data2=*(volatile short *)addr;break; - asm("lhu $2,(%1); - sh $2,(%0) - " - ::"r"(&mydata->data2),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;lhu $2,(%1);" \ + "sh $2,(%0);" \ + ::"r"(&mydata->data2),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 4: #if __mips >= 3 //mydata->data4=*(volatile int *)addr;break; - asm("lwu $2,(%1); - sw $2,(%0) - " - ::"r"(&mydata->data4),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;lwu $2,(%1);" \ + "sw $2,(%0);" \ + ::"r"(&mydata->data4),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); #else @@ -370,10 +379,9 @@ case 4: case 8: // mydata->data8[0]=*(volatile int *)addr;mydata->data8[1]=*(volatile int *)(addr+4); //*(long long *)mydata->data8=*(volatile long long *)addr; - asm("ld $2,(%1); - sd $2,(%0) - " - ::"r"(mydata->data8),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;ld $2,(%1);" \ + "sd $2,(%0);" \ + ::"r"(mydata->data8),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; @@ -383,39 +391,40 @@ return 0; static int __syscall2(int type,long long addr,union commondata *mydata) { +union { +long long ll; +int l[2]; +} a; +a.ll=addr; switch(type) { case 1: //*(volatile char *)addr=mydata->data1;break; - asm("lbu $2,(%0); - sb $2,(%1) - " - ::"r"(&mydata->data1),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;lbu $2,(%0);" \ + "sb $2,(%1);" \ + ::"r"(&mydata->data1),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 2: //*(volatile short *)addr=mydata->data2;break; - asm("lhu $2,(%0); - sh $2,(%1) - " - ::"r"(&mydata->data2),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;lhu $2,(%0);" \ + "sh $2,(%1);" \ + ::"r"(&mydata->data2),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 4: //*(volatile int *)addr=mydata->data4;break; #if __mips >= 3 - asm("lwu $2,(%0); - sw $2,(%1) - " + asm("lwu $2,(%0);" \ + "sw $2,(%1);" \ ::"r"(&mydata->data4),"r"(addr) :"$2" ); #else - asm("lw $2,(%0); - sw $2,(%1) - " + asm("lw $2,(%0);" \ + "sw $2,(%1);" \ ::"r"(&mydata->data4),"r"(addr) :"$2" ); @@ -423,10 +432,9 @@ case 4: break; case 8: - asm("ld $2,(%0); - sd $2,(%1) - " - ::"r"(mydata->data8),"r"(addr) + asm("dsll32 %2,%2,0;or %1,%2;ld $2,(%0);" \ + "sd $2,(%1);" \ + ::"r"(mydata->data8),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); //*(volatile int *)addr=mydata->data8[0];*(volatile int *)(addr+4)=mydata->data8[1]; @@ -985,51 +993,48 @@ addr=addrin&~0x1fULL; size=(addrin-addr+size+0x1f)&~0x1fUL; #if __mips >= 3 -asm(" - #define COP_0_STATUS_REG $12 - #define SR_DIAG_DE 0x00010000 - mfc0 %0, $12 # Save the status register. - li $2, 0x00010000 - mtc0 $2, $12 # Disable interrupts - ":"=r"(status) +asm(" #define COP_0_STATUS_REG $12 \n" + " #define SR_DIAG_DE 0x00010000\n" + " mfc0 %0, $12 # Save the status register.\n" + " li $2, 0x00010000\n" + " mtc0 $2, $12 # Disable interrupts\n" + :"=r"(status) ::"$2"); if(rw) { - asm(" - #define HitWBInvalidate_S 0x17 - #define HitWBInvalidate_D 0x15 - .set noreorder - 1: - sync - cache 0x17, 0(%0) - daddiu %0,32 - addiu %1,-32 - bnez %1,1b - nop - .set reorder - "::"r"(addr),"r"(size)); + asm("#define HitWBInvalidate_S 0x17 \n" + "#define HitWBInvalidate_D 0x15 \n" + ".set noreorder\n" + "1: \n" + "sync \n" + "cache 0x17, 0(%0) \n" + "daddiu %0,32 \n" + "addiu %1,-32 \n" + "bnez %1,1b \n" + "nop \n" + ".set reorder \n" + ::"r"(addr),"r"(size)); } else { - asm(" - #define HitInvalidate_S 0x13 - #define HitInvalidate_D 0x11 - .set noreorder - 1: - sync - cache 0x13, 0(%0) - daddiu %0,32 - addiu %1,-32 - bnez %1,1b - nop - .set reorder - "::"r"(addr),"r"(size)); -} - -asm(" - #define COP_0_STATUS_REG $12 - mtc0 %0, $12 # Restore the status register. - "::"r"(status)); + asm("#define HitInvalidate_S 0x13 \n" + "#define HitInvalidate_D 0x11\n" +" .set noreorder\n" +" 1: \n" +" sync\n" +" cache 0x13, 0(%0)\n" +" daddiu %0,32\n" +" addiu %1,-32\n" +" bnez %1,1b\n" +" nop\n" +" .set reorder\n" + ::"r"(addr),"r"(size)); +} + +asm("\n" +" #define COP_0_STATUS_REG $12\n" +" mtc0 %0, $12 # Restore the status register.\n" + ::"r"(status)); #else pci_sync_cache(0,addr,size,rw); @@ -1639,21 +1644,19 @@ static void cmd_led(int argc,char **argv) static int cmd_testcpu(int argc,char **argv) { int count=strtoul(argv[1],0,0); -asm(" -.set noreorder -move $4,%0 -li $2,0x80000000 -1: -.rept 300 -ld $3,($2) -add.s $f4,$f2,$f0 -mul.s $f10,$f8,$f6 -srl $5,$4,10 -.endr -bnez $4,1b -addiu $4,-1 -.set reorder -" +asm(" .set noreorder\n" +"move $4,%0\n" +"li $2,0x80000000\n" +"1:\n" +".rept 300\n" +"ld $3,($2)\n" +"add.s $f4,$f2,$f0\n" +"mul.s $f10,$f8,$f6\n" +"srl $5,$4,10\n" +".endr\n" +"bnez $4,1b\n" +"addiu $4,-1\n" +".set reorder\n" : :"r"(count) ); @@ -1666,20 +1669,19 @@ int highmemcpy(long long dst,long long src,long long count); int highmemcpy(long long dst,long long src,long long count) { #if __mips >= 3 -asm(" -.set noreorder -1: -beqz %2,2f -nop -lb $2,(%0) -sb $2,(%1) -daddiu %0,1 -daddiu %1,1 -b 1b -daddiu %2,-1 -2: -.set reorder -" +asm( +".set noreorder\n" +"1:\n" +"beqz %2,2f\n" +"nop\n" +"lb $2,(%0)\n" +"sb $2,(%1)\n" +"daddiu %0,1\n" +"daddiu %1,1\n" +"b 1b\n" +"daddiu %2,-1\n" +"2:\n" +".set reorder\n" ::"r"(src),"r"(dst),"r"(count) :"$2" ); @@ -1692,18 +1694,17 @@ return 0; int highmemset(long long addr,char c,long long count) { #if __mips >= 3 -asm(" -.set noreorder -1: -beqz %2,2f -nop -sb %1,(%0) -daddiu %0,1 -b 1b -daddiu %2,-1 -2: -.set reorder -" +asm( +".set noreorder\n" +"1:\n" +"beqz %2,2f\n" +"nop\n" +"sb %1,(%0)\n" +"daddiu %0,1\n" +"b 1b\n" +"daddiu %2,-1\n" +"2:\n" +".set reorder\n" ::"r"(addr),"r"(c),"r"(count) :"$2" ); @@ -1762,10 +1763,9 @@ static int lwl(int argc,char **argv) unsigned long long addr; if(argc!=2)return -1; addr=nr_str2addr(argv[1],0,0); - asm("ld $2,(%0); - lwl $2,(%1); - sw $2,(%0) - " + asm("ld $2,(%0);\n" +" lwl $2,(%1);\n" +" sw $2,(%0)\n" ::"r"(&lrdata),"r"(addr) :"$2" ); @@ -1776,10 +1776,9 @@ static int lwr(int argc,char **argv) unsigned long long addr; if(argc!=2)return -1; addr=nr_str2addr(argv[1],0,0); - asm("ld $2,(%0); - lwr $2,(%1); - sw $2,(%0) - " + asm("ld $2,(%0);\n" +" lwr $2,(%1);\n" +" sw $2,(%0)\n" ::"r"(&lrdata),"r"(addr) :"$2" ); @@ -1790,10 +1789,9 @@ static int ldl(int argc,char **argv) unsigned long long addr; if(argc!=2)return -1; addr=nr_str2addr(argv[1],0,0); - asm("ld $2,(%0); - ldl $2,(%1); - sd $2,(%0) - " + asm("ld $2,(%0);\n" +" ldl $2,(%1);\n" +" sd $2,(%0)\n" ::"r"(&lrdata),"r"(addr) :"$2" ); @@ -1804,10 +1802,9 @@ static int ldr(int argc,char **argv) unsigned long long addr; if(argc!=2)return -1; addr=nr_str2addr(argv[1],0,0); - asm("ld $2,(%0); - ldr $2,(%1); - sd $2,(%0) - " + asm("ld $2,(%0);\n" +" ldr $2,(%1);\n" +" sd $2,(%0)\n" ::"r"(&lrdata),"r"(addr) :"$2" ); diff --git a/pmon/cmds/newmt/newmt.c b/pmon/cmds/newmt/newmt.c index 5bd91c27..0d741bc4 100644 --- a/pmon/cmds/newmt/newmt.c +++ b/pmon/cmds/newmt/newmt.c @@ -59,6 +59,7 @@ short memsz_mode = SZ_MODE_BIOS; struct cpu_ident cpu_id; static void compute_segments(int win); +#include "fb.h" #include "config.c" #include "patn.c" #include "screen_buffer.c" diff --git a/pmon/cmds/setup.c b/pmon/cmds/setup.c index d7200015..65004a7a 100644 --- a/pmon/cmds/setup.c +++ b/pmon/cmds/setup.c @@ -580,31 +580,31 @@ struct setupMenu dbgmenu={ char helpmsg[]= -" other cmds -d1:dump somthing in 1 byte read -d2:dump somthing in 2 byte read -d4:dump somthing in 4 byte read -d8:dump somthing in 8 byte read -m1:modify somthing in 1 byte write -m2:modify somthing in 2 byte write -m4:modify somthing in 4 byte write -m8:modify somthing in 8 byte write - here something can be memory,pci configure space,disk device -pcs: pcs bus dev func - set d1-d4,m1-m4 access pci configure space -disks:disks fd0,disks wd0,disks cd0 - set d1-d4,m1-m4 access disks device -pcs -1 -disks -1 - set d1-d4,m1-m4 access normal memory -pnpr: popr LDN index -popw :pnpw LDN index data - read/write superio configure register -watchdog: - watchdog test -tpp: - parallel port test -"; +" other cmds;\n" \ +"d1:dump somthing in 1 byte read;\n" \ +"d2:dump somthing in 2 byte read;\n" \ +"d4:dump somthing in 4 byte read;\n" \ +"d8:dump somthing in 8 byte read;\n" \ +"m1:modify somthing in 1 byte write;\n" \ +"m2:modify somthing in 2 byte write;\n" \ +"m4:modify somthing in 4 byte write;\n" \ +"m8:modify somthing in 8 byte write;\n" \ +" here something can be memory,pci configure space,disk device;\n" \ +"pcs: pcs bus dev func ;\n" \ +" set d1-d4,m1-m4 access pci configure space;\n" \ +"disks:disks fd0,disks wd0,disks cd0;\n" \ +" set d1-d4,m1-m4 access disks device;\n" \ +"pcs -1;\n" \ +"disks -1;\n" \ +" set d1-d4,m1-m4 access normal memory;\n" \ +"pnpr: popr LDN index;\n" \ +"popw :pnpw LDN index data;\n" \ +" read/write superio configure register;\n" \ +"watchdog:;\n" \ +" watchdog test;\n" \ +"tpp:;\n" \ +" parallel port test;\n" \ +; struct setupMenu othersmenu={ 0,POP_W,POP_H, diff --git a/pmon/cmds/test/cpu.c b/pmon/cmds/test/cpu.c index 1bea6f55..1e3f0c59 100644 --- a/pmon/cmds/test/cpu.c +++ b/pmon/cmds/test/cpu.c @@ -5,40 +5,39 @@ static volatile float y=9.153784; static volatile float z; printf("cp0 register read test\n"); -asm(" -mfc0 $0,$0 -mfc0 $0,$1 -mfc0 $0,$2 -mfc0 $0,$3 -mfc0 $0,$4 -mfc0 $0,$5 -mfc0 $0,$6 -mfc0 $0,$7 -mfc0 $0,$8 -mfc0 $0,$9 -mfc0 $0,$10 -mfc0 $0,$11 -mfc0 $0,$12 -mfc0 $0,$13 -mfc0 $0,$14 -mfc0 $0,$15 -mfc0 $0,$16 -mfc0 $0,$17 -mfc0 $0,$18 -mfc0 $0,$19 -mfc0 $0,$20 -mfc0 $0,$21 -mfc0 $0,$22 -mfc0 $0,$23 -mfc0 $0,$24 -mfc0 $0,$25 -mfc0 $0,$26 -mfc0 $0,$27 -mfc0 $0,$28 -mfc0 $0,$29 -mfc0 $0,$30 -mfc0 $0,$31 -" +asm(\ +"mfc0 $0,$0;\n" \ +"mfc0 $0,$1;\n" \ +"mfc0 $0,$2;\n" \ +"mfc0 $0,$3;\n" \ +"mfc0 $0,$4;\n" \ +"mfc0 $0,$5;\n" \ +"mfc0 $0,$6;\n" \ +"mfc0 $0,$7;\n" \ +"mfc0 $0,$8;\n" \ +"mfc0 $0,$9;\n" \ +"mfc0 $0,$10;\n" \ +"mfc0 $0,$11;\n" \ +"mfc0 $0,$12;\n" \ +"mfc0 $0,$13;\n" \ +"mfc0 $0,$14;\n" \ +"mfc0 $0,$15;\n" \ +"mfc0 $0,$16;\n" \ +"mfc0 $0,$17;\n" \ +"mfc0 $0,$18;\n" \ +"mfc0 $0,$19;\n" \ +"mfc0 $0,$20;\n" \ +"mfc0 $0,$21;\n" \ +"mfc0 $0,$22;\n" \ +"mfc0 $0,$23;\n" \ +"mfc0 $0,$24;\n" \ +"mfc0 $0,$25;\n" \ +"mfc0 $0,$26;\n" \ +"mfc0 $0,$27;\n" \ +"mfc0 $0,$28;\n" \ +"mfc0 $0,$29;\n" \ +"mfc0 $0,$30;\n" \ +"mfc0 $0,$31;\n" \ :::"$2","$3" ); diff --git a/pmon/dev/flash_amd.c b/pmon/dev/flash_amd.c index 2c888679..46de4d62 100644 --- a/pmon/dev/flash_amd.c +++ b/pmon/dev/flash_amd.c @@ -471,7 +471,7 @@ fl_isbusy_amd(map, dev, what, offset, erase) else return -1; } break; - default: + default:; /* Not supported but sorted out much earlier */ } return(busy); diff --git a/pmon/dev/flash_sst.c b/pmon/dev/flash_sst.c index 35760d63..4398b704 100644 --- a/pmon/dev/flash_sst.c +++ b/pmon/dev/flash_sst.c @@ -242,7 +242,7 @@ fl_isbusy_sst(map, dev, what, offset, erase) } } break; - default: + default:; /* Not supported but sorted out much earlier */ } return(busy); diff --git a/pmon/dev/kbd.c b/pmon/dev/kbd.c index 5f4bbbf4..5edc9046 100644 --- a/pmon/dev/kbd.c +++ b/pmon/dev/kbd.c @@ -551,7 +551,7 @@ void handle_scancode(unsigned char scancode, int down) } } } -out: +out:; } diff --git a/sys/arch/mips/include/va-mips.h b/sys/arch/mips/include/va-mips.h index 96db5b46..2744fb3b 100644 --- a/sys/arch/mips/include/va-mips.h +++ b/sys/arch/mips/include/va-mips.h @@ -86,7 +86,7 @@ enum { /* Get definitions for _MIPS_SIM_ABI64 etc. */ #ifdef _MIPS_SIM -#include +//#include #endif #ifdef _STDARG_H diff --git a/sys/dev/pci/em/e1000_pmon.c b/sys/dev/pci/em/e1000_pmon.c index a108ac35..0d195201 100644 --- a/sys/dev/pci/em/e1000_pmon.c +++ b/sys/dev/pci/em/e1000_pmon.c @@ -68,6 +68,7 @@ struct myfreelist { caddr_t next; }; +void mykmeminit(); #define MYVM_KMEM_SIZE (8 * 1024 * 1024) static vm_offset_t mykmem_offs; char *mykmem_malloc(unsigned long size) diff --git a/sys/dev/pci/rtl8169.c b/sys/dev/pci/rtl8169.c index 7be6e0c5..62263ef3 100755 --- a/sys/dev/pci/rtl8169.c +++ b/sys/dev/pci/rtl8169.c @@ -185,7 +185,7 @@ VERSION 2.2LK <2005/01/25> #endif /* Maximum events (Rx packets, etc.) to handle at each interrupt. */ -static const int max_interrupt_work = 20; +static int max_interrupt_work = 20; //static const int max_interrupt_work = 200; //lihui. /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast). @@ -1949,6 +1949,7 @@ r8169_attach(struct device * parent, struct device * self, void *aux) } +static void rtl8169_hw_reset(struct rtl8169_private *tp); static int rtl8169_open_times = 0; static int rtl8169_open(struct rtl8169_private *tp) { @@ -2451,6 +2452,7 @@ static void rtl8169_init_ring_indexes(struct rtl8169_private *tp) tp->dirty_tx = tp->dirty_rx = tp->cur_tx = tp->cur_rx = 0; } +static void rtl8169_tx_clear(struct rtl8169_private *tp); static int rtl8169_init_ring(struct rtl8169_private *tp) { int tmpres; diff --git a/sys/kern/kern_syscall.c b/sys/kern/kern_syscall.c index 1096bd80..603788ea 100644 --- a/sys/kern/kern_syscall.c +++ b/sys/kern/kern_syscall.c @@ -85,10 +85,10 @@ static __inline int sigismember(const sigset_t *set, int signo) { #define MAXARGS 6 -static int gensyscall __P((int (*) __P((struct proc *, void *, register_t *)), int, int, va_list)); +static int gensyscall __P((int (*) __P((struct proc *, void *, register_t *)), int, long, va_list)); static int -gensyscall (int (*func) __P((struct proc *, void *, register_t *)), int nargs, int a1, va_list ap) +gensyscall (int (*func) __P((struct proc *, void *, register_t *)), int nargs, long a1, va_list ap) { extern int errno; struct args {register_t a[MAXARGS];} ua; @@ -103,7 +103,7 @@ gensyscall (int (*func) __P((struct proc *, void *, register_t *)), int nargs, i ua.a[0] = a1; } for (i = 1; i < nargs; i++) { - ua.a[i] = va_arg (ap, register_t); + ua.a[i] = va_arg (ap, long); } while (1) { @@ -124,8 +124,8 @@ gensyscall (int (*func) __P((struct proc *, void *, register_t *)), int nargs, i } #define syscall(pub, pri, nargs) \ -int pub __P((int, ...)); \ -int pub (int a1, ...) \ +int pub __P((long, ...)); \ +int pub (long a1, ...) \ { \ int res; \ va_list ap; \ @@ -334,7 +334,7 @@ int sigpause(mask) int mask; { - return (sigsuspend((int)&mask)); + return (sigsuspend((long)&mask)); } sigset_t _sigintr; /* shared with siginterrupt */ diff --git a/tools/pmoncfg/main.c b/tools/pmoncfg/main.c index e9571930..7475ccff 100644 --- a/tools/pmoncfg/main.c +++ b/tools/pmoncfg/main.c @@ -521,7 +521,7 @@ cfcrosscheck(cf, what, nv) conffile, cf->cf_lineno, cf->cf_name, what, nv->nv_str, nv->nv_str); errs++; -loop: +loop:; } return (errs); } diff --git a/tools/scripts/pmon.lib.gmk b/tools/scripts/pmon.lib.gmk index 3e183ff7..ac3215d9 100644 --- a/tools/scripts/pmon.lib.gmk +++ b/tools/scripts/pmon.lib.gmk @@ -71,4 +71,4 @@ clean: cleandir: clean depend: - ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} ${SRCS} \ No newline at end of file + ${MKDEP} -a ${CFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${SRCS} diff --git a/zloader/Makefile.inc b/zloader/Makefile.inc index 83a69ce0..ffc3e654 100755 --- a/zloader/Makefile.inc +++ b/zloader/Makefile.inc @@ -1,40 +1,14 @@ -export MKDEP=makedepend ifndef PMONCC -CC=mips-elf-gcc -mips3 +export CROSS_COMPILE +CC=$(CROSS_COMPILE)gcc else CC=${PMONCC} endif GZROMSTARTADDR?=0xffffffff81000000 ROMSTARTADDR?=0xffffffff80010000 RAMSTARTADDR?=0xffffffff88000000 -GZROMSTARTADDR_EJTAG?=0xffffffff81000200 -export CC += ${MYCC} - -ifeq ("${tgt}","rom") -gencode=./genrom -endif - -ifeq ("${tgt}","zlib_rom") -gencode=./genrom -endif - - -ifeq ("${tgt}","ejtag_rom") -gencode=./genrom_ejtag -CC += -DBOOT_FORM_JTAG -endif - -ifeq ("${tgt}","ejtag_rom1") -gencode=./genrom -CC += -DBOOT_FORM_JTAG -endif - -ifeq ("${tgt}","ejtag_ram") -gencode=./genrom -ROMSTARTADDR=0xffffffffff200200 -CC += -DBOOT_FORM_JTAG -endif - +export CC += ${MYCC} -mips3 -mno-abicalls -fno-pic +export MKDEP=makedepend ifdef obj export CC += -g3 @@ -50,44 +24,28 @@ help: @echo use make tgt=ram for generate ramfile gzram @echo use make cfg for config @echo use make recfg for change config - @echo use make tgt=rom MYCC="'"-g3 -DMYDBG='"printf(\"debug:%s,%d\\n\",__FILE__,__LINE__);"'"'" to support MYDBG macro. + @echo use make tgt=rom DEBUG=-g MYCC="'"-g3 -DMYDBG='"printf(\"debug:%s,%d\\n\",__FILE__,__LINE__);"'"'" to support MYDBG macro. else all: ${tgt} sim: clean pmon.bin.c gcc -o zloader -DSIM zloader.c rom: clean ${START} zloader.o - gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o gzrom ${START} zloader.o - mips-elf-objcopy -O binary gzrom gzrom.bin -# sync + gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S |sed 's/OUTPUT_ARCH(1)/OUTPUT_ARCH(mips)/'> ld.script + ${CROSS_COMPILE}ld -T ld.script -e start -o gzrom ${START} zloader.o + ${CROSS_COMPILE}objcopy -O binary gzrom gzrom.bin + ram: clean startram.o zloader.o - gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o gzram startram.o zloader.o - cp gzram /tftpboot -# sync -ejtag_rom: clean ${START} zloader.o - gcc -DSTARTADDR=${GZROMSTARTADDR_EJTAG} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o gzrom ${START} zloader.o - mips-elf-objcopy -O binary gzrom gzrom.bin - -ejtag_rom1: clean ${START} zloader.o - gcc -DSTARTADDR=${GZROMSTARTADDR_EJTAG} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o gzrom ${START} zloader.o - mips-elf-objcopy -O binary gzrom gzrom.bin - -ejtag_ram: clean ${START} zloader.o - gcc -DSTARTADDR=${GZROMSTARTADDR_EJTAG} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o gzrom ${START} zloader.o - mips-elf-objcopy -O binary gzrom gzrom.bin + gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S |sed 's/OUTPUT_ARCH(1)/OUTPUT_ARCH(mips)/'> ld.script + ${CROSS_COMPILE}ld -mips3 -T ld.script -e start -o gzram startram.o zloader.o zlib_rom: clean ${START} zlib_loader.o gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o zlib_gzrom ${START} zlib_loader.o zlib_inflate/*.o - mips-elf-objcopy -O binary zlib_gzrom zlib_gzrom.bin + ${CROSS_COMPILE}ld -T ld.script -e start -o zlib_gzrom ${START} zlib_loader.o zlib_inflate/*.o + ${CROSS_COMPILE}objcopy -O binary zlib_gzrom zlib_gzrom.bin sync zlib_ram: clean startram.o zlib_loader.o gcc -DSTARTADDR=${GZROMSTARTADDR} -E -P ld.script.S > ld.script - mips-elf-ld -T ld.script -e start -o zlib_gzram startram.o zlib_loader.o zlib_inflate/*.o + ${CROSS_COMPILE}ld -T ld.script -e start -o zlib_gzram startram.o zlib_loader.o zlib_inflate/*.o cp zlib_gzram /tftpboot sync @@ -95,20 +53,23 @@ zlib_ram: clean startram.o zlib_loader.o ${START}: rm -f ../Targets/${TARGET}/compile/${TARGETEL}/${START} - gcc -DSTARTADDR=${ROMSTARTADDR} -E -P ld.script.S > ../Targets/${TARGET}/conf/ld.script + gcc -Dmyarch="mips" -DSTARTADDR=${ROMSTARTADDR} -E -P ld.script.S |sed 's/OUTPUT_ARCH(1)/OUTPUT_ARCH(mips)/' > ../Targets/${TARGET}/conf/ld.script make -C ../Targets/${TARGET}/compile/${TARGETEL}/ cp ../Targets/${TARGET}/compile/${TARGETEL}/${START} . startram.o: gcc -DSTARTADDR=${RAMSTARTADDR} -E -P ld.script.S > ../Targets/${TARGET}/conf/ld.script make -C ../Targets/${TARGET}/compile/${TARGETEL}/ DEBUG='-g -DMYDBG="printf(\"debug:%s,%d\\n\",__FILE__,__LINE__);"' - $(CC) -D_LOCORE -G 0 -nostdinc -DMIPS -DCONS_BAUD="B115200" -DCONFIG_CACHE_64K_4WAY -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__ -EL -mno-abicalls -mcpu=r4000 -c startram.S -D MEMSIZE=${MEMSIZE} + $(CC) -D_LOCORE -G 0 -nostdinc -DMIPS -DCONS_BAUD="B115200" -DCONFIG_CACHE_64K_4WAY -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__ -mno-abicalls -c startram.S -D MEMSIZE=${MEMSIZE} +# $(CC) -D_LOCORE -G 0 -nostdinc -DMIPS -DCONS_BAUD="B115200" -DCONFIG_CACHE_64K_4WAY -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__ -EL -mno-abicalls -mcpu=r4000 -c startram.S -D MEMSIZE=${MEMSIZE} zloader.o: zloader.c inflate.c malloc.c memop.c pmon.bin.c initmips.c - $(CC) -EL -mcpu=r4000 -c zloader.c ${ZLOADER_OPTIONS} -DMEMSIZE=${MEMSIZE} + $(CC) -c zloader.c ${ZLOADER_OPTIONS} -DMEMSIZE=${MEMSIZE} zlib_loader.o: zlib_loader.c ./zlib_gzip zlib_pmon.bin.c initmips.c - cd zlib_inflate;$(CC) -I ../../include -EL -mcpu=r4000 -c *.c - $(CC) -I ../include -EL -mcpu=r4000 -c zlib_loader.c + cd zlib_inflate;$(CC) -I ../../include -c *.c + #cd zlib_inflate;$(CC) -I ../../include -EL -mcpu=r4000 -c *.c + #$(CC) -I ../include -EL -mcpu=r4000 -c zlib_loader.c + $(CC) -I ../include -c zlib_loader.c initmips.c: ../Targets/${TARGET}/compile/${TARGETEL}/pmon ${gencode} $< > initmips.c @@ -123,6 +84,14 @@ pmon.bin.c: ../Targets/${TARGET}/compile/${TARGETEL}/pmon.bin endif +ifeq ("${tgt}","rom") +gencode=./genrom +endif + +ifeq ("${tgt}","zlib_rom") +gencode=./genrom +endif + ifndef gencode gencode=./genram diff --git a/zloader/genram b/zloader/genram index a8ecc498..cceb189f 100755 --- a/zloader/genram +++ b/zloader/genram @@ -1,27 +1,28 @@ #!/usr/bin/perl my ($myedata,$myend,$initmips,$mystart,$tgt_putchar); -open(F,qq(mips-elf-objdump -x $ARGV[0]|)); +open(F,qq(mipsel-linux-objdump -x $ARGV[0]|)); while() { chomp; -if(/f{8}(\w+).+_edata/){ +if(/([0-9a-f]+).+_edata/){ $myedata=qq(0x$1); } -if(/f{8}(\w+).+_end$/){ +if(/([0-9a-f]+).+_end$/){ $myend=qq(0x$1); } -if(/f{8}(\w+).+initmips$/){ +if(/([0-9a-f]+).+initmips$/){ $myinitmips=qq(0x$1); } -if(/f{8}(\w+).+\s_start$/){ +if(/([0-9a-f]+).+\s_start$/){ $mystart=qq(0x$1); } -if(/f{8}(\w+).+\stgt_putchar$/){ +if(/([0-9a-f]+).+\stgt_putchar$/){ $tgt_putchar=qq(0x$1); } } printf(<< "END" +#define NOMSG typedef long long off_t; struct callvectors { int (*open) (char *, int, int); @@ -38,28 +39,27 @@ void realinitmips(unsigned int msize); #ifndef NOCACHE2 void flush_cache2() { -asm volatile(" - mfc0 \$3, \$15 # read processor ID register - li \$2, 0x6303 #godson2f prid - beq \$2, \$3, godson_2f - nop - li \$2, 0x6302 #godson2e prid - bne \$2, \$3,11f - nop -# godson2e -godson_2f: - li \$2, 0x80000000 - addu \$3,\$2,512*1024 -10: - cache 3, 0(\$2) - cache 3, 1(\$2) - cache 3, 2(\$2) - cache 3, 3(\$2) - addu \$2, 32 - bne \$2,\$3, 10b - nop -11: -" +asm volatile(\ +" mfc0 \$3, \$15 # read processor ID register;" \\ +" li \$2, 0x6303 #godson2f prid;" \\ +" beq \$2, \$3, godson_2f;" \\ +" nop;" \\ +" li \$2, 0x6302 #godson2e prid;" \\ +" bne \$2, \$3,11f ;"\\ +" nop;" \\ +"# godson2e;" \\ +"godson_2f:;" \\ +" li \$2, 0x80000000;" \\ +" addu \$3,\$2,512*1024;" \\ +"10:;" \\ +" cache 3, 0(\$2);" \\ +" cache 3, 1(\$2);" \\ +" cache 3, 2(\$2);" \\ +" cache 3, 3(\$2);" \\ +" addu \$2, 32;" \\ +" bne \$2,\$3, 10b;" \\ +" nop;" \\ +"11:;" \\ :: :"\$2","\$3" ); @@ -67,31 +67,30 @@ godson_2f: #else void flush_cache() { -asm volatile(" - .set mips3; - li \$5,0x80000000 - addu \$6,\$5,16384 -1: - cache 1,0(\$5) - cache 1,1(\$5) - cache 1,2(\$5) - cache 1,3(\$5) - cache 0,(\$5) - add \$5,\$5,32 - bne \$5,\$6,1b - nop - .set mips0; -" +asm volatile(\ +" .set mips3;;" \\ +" li \$5,0x80000000;" \\ +" addu \$6,\$5,16384;" \\ +"1:;" \\ +" cache 1,0(\$5);" \\ +" cache 1,1(\$5);" \\ +" cache 1,2(\$5);" \\ +" cache 1,3(\$5);" \\ +" cache 0,(\$5);" \\ +" add \$5,\$5,32;" \\ +" bne \$5,\$6,1b;" \\ +" nop;" \\ +" .set mips0;;" \\ :: : "\$5","\$6"); } #endif void initmips(unsigned int msize,struct callvectors *cv) { - long *edata=(void *)$myedata; - long *end=(void *)$myend; - long *p; - cvs=cv; + int *edata=(void *)$myedata; + int *end=(void *)$myend; + int *p; + cvs=cv; stringserial("Uncompressing Bios"); run_unzip(biosdata,$mystart); stringserial("OK,Booting Bios\\r\\n"); @@ -107,24 +106,24 @@ void initmips(unsigned int msize,struct callvectors *cv) #else flush_cache2(); #endif - stringserial("done,boot now\r\n"); + stringserial("done,boot now\\r\\n"); realinitmips(msize); } void realinitmips(unsigned int msize) { - asm ("li \$29,$mystart-0x4000; - li \$2,$myinitmips; - move \$4,\%0; - jalr \$2; - nop; - 1: b 1b;nop;" + asm ("li \$29,$mystart-0x4000;" \ + "li \$2,$myinitmips;" \ + "move \$4,\%0;" \ + "jalr \$2;" \ + " nop;" \ + "1: b 1b;nop;" : : "r" (msize) : "\$29", "\$2","\$4"); } -static void (*rom_putchar)(char c)=(${tgt_putchar}-${mystart}+0xbfc00000); +static void (*rom_putchar)(char c)=(${tgt_putchar}-${mystart}+0xffffffffbfc00000); void tgt_putchar(char c) { #ifndef NOMSG diff --git a/zloader/genrom b/zloader/genrom index 43ae2a3e..07037ca8 100755 --- a/zloader/genrom +++ b/zloader/genrom @@ -1,20 +1,20 @@ #!/usr/bin/perl my ($myedata,$myend,$initmips,$mystart); -open(F,qq(mips-elf-objdump -x $ARGV[0]|)); +open(F,qq(objdump -x $ARGV[0]|)); while() { chomp; -if(/f{8}(\w+).+_edata/){ +if(/([0-9a-f]+).+_edata/){ $myedata=qq(0x$1); } -if(/f{8}(\w+).+_end$/){ +if(/([0-9a-f]+).+_end$/){ $myend=qq(0x$1); } -if(/f{8}(\w+).+initmips$/){ +if(/([0-9a-f]+).+initmips$/){ $myinitmips=qq(0x$1); } -if(/f{8}(\w+).+\s_start$/){ +if(/([0-9a-f]+).+\s_start$/){ $mystart=qq(0x$1); } } @@ -24,12 +24,12 @@ void realinitmips(unsigned int msize); void enable_cache() { __asm__ volatile( - ".set mips3; - mfc0 \$4,\$16; - and \$4,\$4,0xfffffff8; - or \$4,\$4,0x3; - mtc0 \$4,\$16; - .set mips0;" + ".set mips3;\\n" \\ +" mfc0 \$4,\$16;\\n" \\ +" and \$4,\$4,0xfffffff8;\\n" \\ +" or \$4,\$4,0x3;\\n" \\ +" mtc0 \$4,\$16;\\n" \\ +" .set mips0;\\n" :: :"\$4" ); @@ -38,55 +38,48 @@ void enable_cache() #ifndef NOCACHE2 void flush_cache2() { -asm volatile(" - mfc0 \$3, \$15 # read processor ID register - li \$2, 0x6303 #godson2f prid - beq \$2, \$3, godson_2f - nop - li \$2, 0x6302 #godson2e prid - bne \$2, \$3,11f - nop -# godson2e -godson_2f: - li \$2, 0x80000000 - addu \$3,\$2,512*1024 -10: - cache 3, 0(\$2) - cache 3, 1(\$2) - cache 3, 2(\$2) - cache 3, 3(\$2) - addu \$2, 32 - bne \$2,\$3, 10b - nop -11: -" -:: -:"\$2","\$3" +asm volatile(\ +" mfc0 \$3, \$15; # read processor ID register;\\n" \\ +" li \$2, 0x6303; #godson2f prid;\\n" \\ +" beq \$2, \$3, godson_2f;\\n" \\ +" nop;\\n" \\ +" li \$2, 0x6302; #godson2e prid;\\n" \\ +" bne \$2, \$3,11f ;\\n" \\ +" nop;\\n" \\ +"# godson2e;\\n" \\ +" godson_2f: " \\ +" li \$2, 0x80000000;\\n" \\ +" addu \$3,\$2,512*1024;\\n" \\ +"10:\\n" \\ +" cache 3, 0(\$2);\\n" \\ +" cache 3, 1(\$2);\\n" \\ +" cache 3, 2(\$2);\\n" \\ +" cache 3, 3(\$2);\\n" \\ +" addu \$2, 32;\\n" \\ +" bne \$2,\$3, 10b;\\n" \\ +" nop;\\n" \\ +"11:\\n" \\ +:::"\$2","\$3" ); } #else void flush_cache() { -asm volatile(" - .set mips3; - li \$5,0x80000000 - addu \$6,\$5,16384 -1: - cache 1,0(\$5) - cache 1,1(\$5) - cache 1,2(\$5) - cache 1,3(\$5) - cache 0,(\$5) - cache 0,1(\$5) - cache 0,2(\$5) - cache 0,3(\$5) - add \$5,\$5,32 - bne \$5,\$6,1b - nop - .set mips0; -" -:: -: "\$5","\$6"); +asm volatile(\ +" .set mips3;\\n" \\ +" li \$5,0x80000000;\\n" \\ +" addu \$6,\$5,16384;\\n" \\ +"1:\\n" \\ +" cache 1,0(\$5);\\n" \\ +" cache 1,1(\$5);\\n" \\ +" cache 1,2(\$5);\\n" \\ +" cache 1,3(\$5);\\n" \\ +" cache 0,(\$5);\\n" \\ +" add \$5,\$5,32;\\n" \\ +" bne \$5,\$6,1b;\\n" \\ +" nop;\\n" \\ +" .set mips0;\\n" \\ +::: "\$5","\$6"); } #endif void initmips(unsigned int msize,int dmsize,int dctrl) @@ -119,12 +112,12 @@ void initmips(unsigned int msize,int dmsize,int dctrl) void realinitmips(unsigned int msize) { - asm ("li \$29,$mystart-0x4000; - li \$2,$myinitmips; - move \$4,\%0; - jalr \$2; - nop; - 1: b 1b;nop;" + asm ("li \$29,$mystart-0x4000;\\n" \\ +" li \$2,$myinitmips;\\n" \\ +" move \$4,\%0;\\n" \\ +" jalr \$2;\\n" \\ +" nop;\\n" \\ +" 1: b 1b;nop;" \\ : : "r" (msize) : "\$29", "\$2","\$4"); diff --git a/zloader/ld.script.S b/zloader/ld.script.S index e5fa093e..caeae1c1 100644 --- a/zloader/ld.script.S +++ b/zloader/ld.script.S @@ -1,6 +1,6 @@ /* $Id: ld.script,v 1.1.1.1 2006/09/14 01:59:08 root Exp $ */ -OUTPUT_FORMAT("elf32-littlemips", "elf32-bigmips", - "elf32-littlemips") +OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradbigmips", + "elf32-tradlittlemips") OUTPUT_ARCH(mips) ENTRY(_start) SECTIONS From 76da5473a727aafff07011de00088c0c18b4bae6 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 11 Mar 2009 11:19:19 +0800 Subject: [PATCH 2/7] change bootmenu. --- fb/cfb_console.c | 5 +++++ pmon/cmds/menulist2f.c | 43 ++++++++++++++++++++-------------------- pmon/dev/flash_st.c | 2 +- pmon/dev/flash_winbond.c | 2 +- sys/dev/pci/files.pci | 1 + 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/fb/cfb_console.c b/fb/cfb_console.c index fb3f7dfc..d42242bf 100644 --- a/fb/cfb_console.c +++ b/fb/cfb_console.c @@ -411,6 +411,10 @@ static const int video_font_draw_table32[16][4] = { int gunzip(void *, int, unsigned char *, unsigned long *); +static void memsetl (int *p, int c, int v); +void video_putchar (int xx, int yy, unsigned char c); +static void memcpyl (int *d, int *s, int c); + extern int vga_available; static int disableoutput=0; @@ -1537,6 +1541,7 @@ void cprintfb(int y, int x,int width,char color, const char *text) int i,l; unsigned char buf[200]; + if(width==0 && text)width=strlen(text); if(text && (l=strlen(text)))memcpy(buf,text,(width && l>width)?width:l); else l=0; if(l Date: Wed, 11 Mar 2009 15:43:07 +0800 Subject: [PATCH 3/7] add 2f7inch. --- Targets/Bonito2F7inch/Bonito/ri.c | 768 +++ Targets/Bonito2F7inch/Bonito/start.S | 2766 +++++++++++ Targets/Bonito2F7inch/Bonito/startz.S | 1115 +++++ Targets/Bonito2F7inch/Bonito/tgt_machdep.c | 1405 ++++++ Targets/Bonito2F7inch/Bonito/vgarom-card.c | 4097 +++++++++++++++++ Targets/Bonito2F7inch/Bonito/vgarom.c | 4097 +++++++++++++++++ Targets/Bonito2F7inch/conf/Bonito | 183 + Targets/Bonito2F7inch/conf/Bonito.2F7inch | 183 + Targets/Bonito2F7inch/conf/Bonito.box | 171 + Targets/Bonito2F7inch/conf/Bonito.notebook | 168 + Targets/Bonito2F7inch/conf/Makefile.Bonito | 211 + .../Bonito2F7inch/conf/Makefile.Bonito2F7inch | 224 + Targets/Bonito2F7inch/conf/files.Bonito | 46 + .../Bonito2F7inch/conf/files.Bonito2F7inch | 47 + Targets/Bonito2F7inch/conf/ld.script | 91 + Targets/Bonito2F7inch/dev/localbus.c | 136 + Targets/Bonito2F7inch/dev/pflash_tgt.h | 62 + Targets/Bonito2F7inch/include/bonito.h | 511 ++ Targets/Bonito2F7inch/include/cs5536.h | 570 +++ Targets/Bonito2F7inch/include/cs5536_pci.h | 139 + Targets/Bonito2F7inch/include/i8254.h | 81 + Targets/Bonito2F7inch/include/isapnpreg.h | 189 + Targets/Bonito2F7inch/include/pmon_target.h | 65 + Targets/Bonito2F7inch/include/prid.h | 74 + Targets/Bonito2F7inch/include/ri.h | 255 + Targets/Bonito2F7inch/include/sbd.h | 231 + Targets/Bonito2F7inch/include/via686b.h | 48 + Targets/Bonito2F7inch/pci/cs5536_io.c | 118 + Targets/Bonito2F7inch/pci/cs5536_io.h | 25 + Targets/Bonito2F7inch/pci/cs5536_vsm.c | 2003 ++++++++ Targets/Bonito2F7inch/pci/pci_machdep.c | 464 ++ Targets/Bonito2F7inch/pci/pci_machdep.h | 124 + Targets/Bonito2F7inch/pci/sys_cmd.c | 570 +++ Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 | 14 +- fb/cfb_console.c | 4 + include/kb3310.h | 99 + pmon/dev/kbd.c | 428 +- sys/dev/pci/files.pci | 4 +- sys/dev/pci/pcidevs.h | 1 + sys/dev/pci/pciide.c | 104 +- sys/dev/pci/pciide_amd_reg.h | 19 + sys/dev/usb/cmd_usb.c | 13 +- sys/dev/usb/usb-ohci.c | 653 +-- sys/dev/usb/usb-ohci.h | 11 +- sys/dev/usb/usb.c | 8 +- sys/dev/usb/usb.h | 1 + sys/dev/usb/usb_kbd.c | 42 +- sys/dev/usb/usb_storage.c | 33 +- 48 files changed, 21929 insertions(+), 742 deletions(-) create mode 100644 Targets/Bonito2F7inch/Bonito/ri.c create mode 100644 Targets/Bonito2F7inch/Bonito/start.S create mode 100644 Targets/Bonito2F7inch/Bonito/startz.S create mode 100644 Targets/Bonito2F7inch/Bonito/tgt_machdep.c create mode 100644 Targets/Bonito2F7inch/Bonito/vgarom-card.c create mode 100644 Targets/Bonito2F7inch/Bonito/vgarom.c create mode 100644 Targets/Bonito2F7inch/conf/Bonito create mode 100644 Targets/Bonito2F7inch/conf/Bonito.2F7inch create mode 100644 Targets/Bonito2F7inch/conf/Bonito.box create mode 100644 Targets/Bonito2F7inch/conf/Bonito.notebook create mode 100644 Targets/Bonito2F7inch/conf/Makefile.Bonito create mode 100644 Targets/Bonito2F7inch/conf/Makefile.Bonito2F7inch create mode 100644 Targets/Bonito2F7inch/conf/files.Bonito create mode 100644 Targets/Bonito2F7inch/conf/files.Bonito2F7inch create mode 100644 Targets/Bonito2F7inch/conf/ld.script create mode 100644 Targets/Bonito2F7inch/dev/localbus.c create mode 100644 Targets/Bonito2F7inch/dev/pflash_tgt.h create mode 100644 Targets/Bonito2F7inch/include/bonito.h create mode 100644 Targets/Bonito2F7inch/include/cs5536.h create mode 100644 Targets/Bonito2F7inch/include/cs5536_pci.h create mode 100644 Targets/Bonito2F7inch/include/i8254.h create mode 100644 Targets/Bonito2F7inch/include/isapnpreg.h create mode 100644 Targets/Bonito2F7inch/include/pmon_target.h create mode 100644 Targets/Bonito2F7inch/include/prid.h create mode 100644 Targets/Bonito2F7inch/include/ri.h create mode 100644 Targets/Bonito2F7inch/include/sbd.h create mode 100644 Targets/Bonito2F7inch/include/via686b.h create mode 100644 Targets/Bonito2F7inch/pci/cs5536_io.c create mode 100644 Targets/Bonito2F7inch/pci/cs5536_io.h create mode 100644 Targets/Bonito2F7inch/pci/cs5536_vsm.c create mode 100644 Targets/Bonito2F7inch/pci/pci_machdep.c create mode 100644 Targets/Bonito2F7inch/pci/pci_machdep.h create mode 100644 Targets/Bonito2F7inch/pci/sys_cmd.c create mode 100644 include/kb3310.h diff --git a/Targets/Bonito2F7inch/Bonito/ri.c b/Targets/Bonito2F7inch/Bonito/ri.c new file mode 100644 index 00000000..00c745f7 --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/ri.c @@ -0,0 +1,768 @@ + +//extern onintr(int a,int *b); +//#include "mips/cpu.h" +#include "mips/prid.h" + +#include "mips.h" +#include "pmon.h" +#ifdef R3081 +#include "r3081.h" +#endif +#ifdef R3041 +#include "r3041.h" +#endif + +#include "ri.h" + +static unsigned long +mips_get_word_l(struct pt_regs *xcp, void *va, int *perr) +{ + *perr = 0; + return(*(unsigned long *)va); +} + +static int +mips_put_word_l(struct pt_regs *xcp, void *va, unsigned long val) +{ + *(unsigned long *)va = val; + return 0; +} + +static int emu_lwl(struct pt_regs * regs,mips_instruction ir,vaddr_t_l emulpc) +{ int err = 0; + /*the "ir" is the instruction causing the exception*/ + /*get the real address,perhaps the address is not word aligned*/ + void *va = REG_TO_VA_l (regs->regs[MIPSInst_RS(ir)])+ MIPSInst_SIMM(ir); + + unsigned long addr = 0; + unsigned long emul_pc = (unsigned long)emulpc; + + unsigned long little_three_bits; + unsigned long value,value_tmp; + +// printf("emu_lwl\r\n"); + + /*compute the correct position in the RT*/ + /*note !!!!: we have supposed the CPU is little_Endianness and status regiester's RE bit =0 */ + /*little Endianness*/ + little_three_bits = (unsigned long)va&(0x7); + value_tmp = regs->regs[MIPSInst_RT(ir)]; + switch(little_three_bits) { + case 0: + case 4: + /*must check lwl valid*/ + addr = (unsigned long) va; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,va,&err); + if(err){ + return SIGBUS; + } + value<<=24; + value_tmp &= 0xffffff; + regs->regs[MIPSInst_RT(ir)] =value_tmp|value; + break; + + case 1: + case 5: + addr = (unsigned long)va -1; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long) va-1),&err); + if(err){ + return SIGBUS; + } + value<<=16; + value_tmp&=0xffff; + regs->regs[MIPSInst_RT(ir)] =value_tmp|value; + break; + + case 2: + case 6: + addr = (unsigned long)va - 2; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long)va-2),&err); + if(err){ + return SIGBUS; + + } + value<<=8; + value_tmp &= 0xff; + regs->regs[MIPSInst_RT(ir)] =value_tmp|value; + break; + + case 3: + case 7: + addr = (unsigned long)va - 3; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long)va-3),&err); + if(err){ + return SIGBUS; + }; + regs->regs[MIPSInst_RT(ir)] = value; + break; + } /*swith ended*/ + return 0; + +} + +static int emu_lwr(struct pt_regs *regs,mips_instruction ir,vaddr_t_l emulpc) +{ int err = 0; + /*the "ir" is the instruction causing the exception*/ + /*get the real address,perhaps the address is not word aligned*/ + void *va = REG_TO_VA_l (regs->regs[MIPSInst_RS(ir)]) + + MIPSInst_SIMM(ir); + unsigned long addr; + unsigned long emul_pc = (unsigned long)emulpc; + unsigned long little_three_bits; + unsigned long value,value_tmp; + +// printf("emu_lwr\r\n"); + + /*compute the correct position in the RT*/ + /*note !!!!: we have supposed the CPU is little_Endianness and status regiester's RE bit =0 */ + little_three_bits = (unsigned long)va&(0x7); + value_tmp = regs->regs[MIPSInst_RT(ir)]; + switch(little_three_bits) { + case 0: + case 4: + /*must check lwl valid*/ + addr = (unsigned long)va ; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,va,&err); + if(err){ + return SIGBUS; + } + regs->regs[MIPSInst_RT(ir)] =value; + break; + + case 1: + case 5: + addr = (unsigned long)va -1; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long)va-1),&err); + if(err){ + return SIGBUS; + } + value>>=8; + value_tmp&=0xff000000; + regs->regs[MIPSInst_RT(ir)] =value_tmp|value; + break; + + case 2: + case 6: + addr = (unsigned long)va-2; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long)va-2),&err); + if(err){ + return SIGBUS; + + } + value>>=16; + value_tmp &= 0xffff0000; + regs->regs[MIPSInst_RT(ir)] =value_tmp|value; + break; + + case 3: + case 7: + addr = (unsigned long)va -3; + check_axs(emul_pc,addr,4); + value = mips_get_word_l(regs,(void *)((unsigned long)va-3),&err); + if(err){ + return SIGBUS; + }; + value>>=24; + value_tmp &= 0xffffff00; + regs->regs[MIPSInst_RT(ir)] = value_tmp|value; + break; + } /*swith ended*/ + return 0; +} + +static int emu_swl(struct pt_regs *regs,mips_instruction ir, vaddr_t_l emulpc) +{ + int err = 0; + /*the "ir" is the instruction causing the exception*/ + /*get the real address,perhaps the address is not word aligned*/ + void *va = REG_TO_VA_l (regs->regs[MIPSInst_RS(ir)]) + + MIPSInst_SIMM(ir); + unsigned long addr; + unsigned long emul_pc = (unsigned long)emulpc; + unsigned long little_three_bits; + unsigned long value,value_tmp; + +// printf("emu_swl\r\n"); + + /*compute the correct position in the RT*/ + /*note !!!!: we have supposed the CPU is little_Endianness and status re + * giester's RE bit =0 */ + little_three_bits = (unsigned long)va&(0x7); + value_tmp = regs->regs[MIPSInst_RT(ir)]; + switch(little_three_bits) { + case 0: + case 4: + addr = (unsigned long)va; + check_axs(emul_pc,addr,4); + value_tmp >>= 24; + value = mips_get_word_l(regs,va,&err); + if(err){ + return SIGBUS; + } + value &=0xffffff00; + value |= value_tmp; + if(mips_put_word_l(regs,va,value)){ + return SIGBUS; + } + break; + case 1: + case 5: + addr = (unsigned long)va -1; + check_axs(emul_pc,addr,4); + value_tmp >>= 16; + value = mips_get_word_l(regs,(void *)((unsigned long)va-1),&err); + if(err){ + return SIGBUS; + } + value &=0xffff0000; + value |= value_tmp; + if(mips_put_word_l(regs,(void *)((unsigned long)va-1),value)){ + return SIGBUS; + } + break; + case 2: + case 6: + addr = (unsigned long)va - 2; + check_axs(emul_pc,addr,4); + value_tmp >>= 8; + value = mips_get_word_l(regs,(void *)((unsigned long)va-2),&err); + if(err){ + return SIGBUS; + } + value &=0xff000000; + value |= value_tmp; + if(mips_put_word_l(regs,(void *)((unsigned long)va-2),value)){ + return SIGBUS; + } + break; + case 3: + case 7: + addr = (unsigned long)va - 3; + check_axs(emul_pc,addr,4); + value = value_tmp; + + if(mips_put_word_l(regs,(void *)((unsigned long)va-3),value)){ + return SIGBUS; + } + break; + } + return 0; + +} + +static int emu_swr(struct pt_regs *regs,mips_instruction ir, vaddr_t_l emulpc) +{ + int err = 0; + /*the "ir" is the instruction causing the exception*/ + /*get the real address,perhaps the address is not word aligned*/ + void *va = REG_TO_VA_l (regs->regs[MIPSInst_RS(ir)]) + + MIPSInst_SIMM(ir); + unsigned long addr; + unsigned long emul_pc = (unsigned long)emulpc; + + + unsigned long little_three_bits; + unsigned long value,value_tmp; + +// printf("emu_swr\r\n"); + + /*compute the correct position in the RT*/ + /*note !!!!: we have supposed the CPU is little_Endianness and status re + * giester's RE bit =0 */ + little_three_bits = (unsigned long)va&(0x7); + value_tmp = regs->regs[MIPSInst_RT(ir)]; + switch(little_three_bits) { + case 0: + case 4: + addr = (unsigned long) va; + check_axs(emul_pc,addr,4); + value = value_tmp; + if(mips_put_word_l(regs,va,value)){ + return SIGBUS; + } + break; + case 1: + case 5: + addr = (unsigned long)va -1; + check_axs(emul_pc,addr,4); + value_tmp <<= 8; + value = mips_get_word_l(regs,(void *)((unsigned long)va-1),&err); + if(err){ + return SIGBUS; + } + value &=0xff; + value |= value_tmp; + if(mips_put_word_l(regs,(void *)((unsigned long)va-1),value)){ + return SIGBUS; + } + break; + case 2: + case 6: + addr = (unsigned long)va - 2; + check_axs(emul_pc,addr,4); + value_tmp <<= 16; + value = mips_get_word_l(regs,(void *)((unsigned long)va-2),&err); + if(err){ + return SIGBUS; + } + value &=0xffff; + value |= value_tmp; + if(mips_put_word_l(regs,(void *)((unsigned long)va-2),value)){ + return SIGBUS; + } + break; + case 3: + case 7: + addr = (unsigned long)va -3; + check_axs(emul_pc,addr,4); + value_tmp <<= 24; + value = mips_get_word_l(regs,(void *)((unsigned long)va-3),&err); + if(err){ + return SIGBUS; + } + + value &= 0xffffff; + value |= value_tmp; + if(mips_put_word_l(regs,(void *)((unsigned long)va-3),value)){ + return SIGBUS; + } + break; + } + return 0; + +} + + + +static int emu_div(struct pt_regs *regs,mips_instruction ir) +{ + int x,y; + int flag = 0; + int quotient = 0,remainder = 0; + unsigned int absx,absy,absquotient = 0,absremainder = 0,bm = 1; + /*the "ir" is the instruction causing the exception*/ + x = regs->regs[MIPSInst_RS(ir)]; + y = regs->regs[MIPSInst_RT(ir)]; + +#ifdef __test_ri__ + //printf("now in function:emu_div().\r\n"); +#endif + + if( y == 0 ) {/*overflow*/ + return SIGABRT; + } + /*x and y ·ûºÅÊÇ·ñ²»Í¬*/ + flag = (x&0x80000000)^(y&0x80000000); + + /*get the abs(x)*/ + if(x<0){ + absx = (unsigned int)-x; + }else { + absx = (unsigned int)x; + } + + /*get the abs(y)*/ + if(y<0){ + absy = (unsigned int) -y; + }else { + absy = (unsigned int)y; + } + + /*caculate the absx/absy*/ + if(absx>= 1; + break; + } + bm<<=1; + } + + for(;bm;bm>>=1){ + if(absx>=absy){ + absx -= absy; + absquotient |= bm; + if(absx == 0) + break; + } + absy >>= 1; + } + absremainder = absx; + +end: + if( flag ){/*·ûºÅÏàÒì*/ + quotient = -absquotient; + remainder = x-quotient*y; + }else { + quotient = absquotient; + remainder = x - quotient*y; + } + + regs->lo =(unsigned long)quotient; + regs->hi = (unsigned long)remainder; + +#ifdef __test_ri__ +// printf("x is: %d\r\n",x); +// printf("y is: %d\r\n",y); +// printf("result is: %d (:\r\n",quotient); +#endif + + return 0; +} + +static int emu_divu(struct pt_regs *regs,mips_instruction ir) +{ + unsigned int x,y,bm=1; + unsigned int quotient = 0,remainder = 0; + + /*the "ir" is the instruction causing the exception*/ + x = regs->regs[MIPSInst_RS(ir)]; + y = regs->regs[MIPSInst_RT(ir)]; + + if( y == 0 ) {/*overflow*/ + return SIGABRT; + } + + if(x>= 1; + break; + } + bm<<=1; + } + + for(;bm;bm>>=1){ + if(x>=y){ + x -= y; + quotient |= bm; + if(x == 0) + break; + } + y >>= 1; + + } + remainder = x; +end: + regs->lo = quotient; + regs->hi = remainder; + return 0; + +} + +/* + * Compute the return address and do emulate branch simulation, if required. + */ +#define EFAULT 1 +int __compute_return_epc(struct pt_regs *regs) +{ + unsigned int *addr, bit, fcr31; + long epc; + mips_instruction insn; + + epc = regs->cp0_epc; + if (epc & 3) { + printf("%s: unaligned epc - sending SIGBUS.\n"); +// force_sig(SIGBUS, current); + return -EFAULT; + } + + /* + * Read the instruction + */ + addr = (unsigned int *) (unsigned long) epc; +#if 0 + if (__get_user(insn, addr)) { + printf("%s: bad epc value - sending SIGSEGV.\n"); +// force_sig(SIGSEGV, current); + return -EFAULT; + } +#endif +//bjzheng add __get_user is prevent page_fault exception,if this occurs,load from disk,but now my whole code is in ram. + insn=*addr; +// printf("instruction is %x",insn); + regs->regs[0] = 0; + switch (MIPSInst_OPCODE(insn)) { + /* + * jr and jalr are in r_format format. + */ + case spec_op: + switch (MIPSInst_FUNC(insn)) { + case jalr_op: + regs->regs[MIPSInst_RD(insn)] = epc + 8; + /* Fall through */ + case jr_op: + regs->cp0_epc = regs->regs[MIPSInst_RS(insn)]; + break; + } + break; + + /* + * This group contains: + * bltz_op, bgez_op, bltzl_op, bgezl_op, + * bltzal_op, bgezal_op, bltzall_op, bgezall_op. + */ + case bcond_op: + switch (MIPSInst_RT(insn)) { + case bltz_op: + case bltzl_op: + if ((long)regs->regs[MIPSInst_RS(insn)] < 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case bgez_op: + case bgezl_op: + if ((long)regs->regs[MIPSInst_RS(insn)] >= 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case bltzal_op: + case bltzall_op: + regs->regs[31] = epc + 8; + if ((long)regs->regs[MIPSInst_RS(insn)] < 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case bgezal_op: + case bgezall_op: + regs->regs[31] = epc + 8; + if ((long)regs->regs[MIPSInst_RS(insn)] >= 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + } + break; + + /* + * These are unconditional and in j_format. + */ + case jal_op: + regs->regs[31] = regs->cp0_epc + 8; + case j_op: + epc += 4; + epc >>= 28; + epc <<= 28; + epc |= (MIPSInst_JTARGET(insn) << 2); + regs->cp0_epc = epc; + break; + + /* + * These are conditional and in i_format. + */ + case beq_op: + case beql_op: + if (regs->regs[MIPSInst_RS(insn)] == + regs->regs[MIPSInst_RT(insn)]) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case bne_op: + case bnel_op: + if (regs->regs[MIPSInst_RS(insn)] != + regs->regs[MIPSInst_RT(insn)]) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case blez_op: /* not really i_format */ + case blezl_op: + /* rt field assumed to be zero */ + if ((long)regs->regs[MIPSInst_RS(insn)] <= 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case bgtz_op: + case bgtzl_op: + /* rt field assumed to be zero */ + if ((long)regs->regs[MIPSInst_RS(insn)] > 0) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + /* + * And now the FPA/cp1 branch instructions. + */ + case cop1_op: +#ifdef CONFIG_MIPS_FPU_EMULATOR + if(!(mips_cpu.options & MIPS_CPU_FPU)) + fcr31 = current->tss.fpu.soft.sr; + else +#endif + asm ("cfc1\t%0,$31":"=r" (fcr31)); + bit = (MIPSInst_RT(insn) >> 2); + bit += (bit != 0); + bit += 23; + switch (MIPSInst_RT(insn)) { + case 0: /* bc1f */ + case 2: /* bc1fl */ + if (~fcr31 & (1 << bit)) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + + case 1: /* bc1t */ + case 3: /* bc1tl */ + if (fcr31 & (1 << bit)) + epc = epc + 4 + (MIPSInst_SIMM(insn) << 2); + else + epc += 8; + regs->cp0_epc = epc; + break; + } + break; + } + + return 0; +} + +int do_ri (struct pt_regs *xcp) +{ + mips_instruction ir; + vaddr_t_l emulpc; + vaddr_t_l contpc; + int err = 0; + int sig; + + + ir = mips_get_word_l(xcp, REG_TO_VA_l xcp->cp0_epc, &err); + if (err) { + return SIGBUS; + } + + /* XXX NEC Vr54xx bug workaround */ +/* if ((xcp->cp0_cause & CAUSEF_BD) && !isBranchInstr (&ir)) + xcp->cp0_cause &= ~CAUSEF_BD;*/ + + if (xcp->cp0_cause & CAUSEF_BD) { + + /* The instruction to be emulated is in a branch delay slot + * which means that we have to emulate the branch instruction + * BEFORE we do the emulating instruction. + * This branch could be a COP1 branch + */ + + emulpc = REG_TO_VA_l(xcp->cp0_epc + 4); /* Snapshot emulation target */ + +#ifndef __bjzheng__ + if( __compute_return_epc(xcp)) {/*compute the return address*/ +#ifdef DBG + _mon_printf ("failed to emulate branch at %p\n", + REG_TO_VA_l (xcp->cp0_epc)); +#endif + return -1;; + } +#endif + + ir = mips_get_word_l(xcp, emulpc, &err); + if (err) { + return SIGBUS; + } + contpc = REG_TO_VA_l xcp->cp0_epc; + + } else { /* not in the Branch delay slot*/ + emulpc = REG_TO_VA_l xcp->cp0_epc; + contpc = REG_TO_VA_l xcp->cp0_epc + 4; + } + + switch(MIPSInst_OPCODE(ir)) { + case lwl_op: /*lwl instruction*/ + sig = emu_lwl(xcp,ir,emulpc); + if( sig!=0) { /*emul has failed*/ + return sig; + } + break; + + case lwr_op:/*lwr instruction*/ + sig = emu_lwr(xcp,ir,emulpc); + if ( sig != 0){ + /*emulate has failed!\n");*/ + return sig; + } + break; + + case swl_op: + sig = emu_swl(xcp,ir,emulpc); + if( sig!=0 ) { /*emul has failed!*/ + printf("emu_swl error\r\n"); + return sig; + } + break; + + case swr_op: + sig = emu_swr(xcp,ir,emulpc); + if( sig!=0 ) { /*emul has failed!*/ + printf("emu_swr error\r\n"); + return sig; + } + break; + case spec_op: + switch (MIPSInst_FUNC(ir)){ + case div_op:/*div_op*/ + sig = emu_div(xcp,ir); + if(sig) { + return sig; + } + break; + case divu_op:/* divu_op:*/ + sig = emu_divu(xcp,ir); + if(sig) { + return sig; + } + break; + default: + + } + + default: + } + + + /*we do it*/ + xcp->cp0_epc = VA_TO_REG_l(contpc); + xcp->cp0_cause &= ~CAUSEF_BD; + return sig; + +} + diff --git a/Targets/Bonito2F7inch/Bonito/start.S b/Targets/Bonito2F7inch/Bonito/start.S new file mode 100644 index 00000000..98432734 --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/start.S @@ -0,0 +1,2766 @@ +/* $Id: start.S,v 1.1.1.1 2006/09/14 01:59:08 root Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * MODIFY 1: + * Author : jlliu Date : 07-10-10 + * 1, ignored the former via686b sourthbridge init which just after the northbridge + * init process. + * 2, write out a new superio_init instead, use the new sourthbridge and its + * relative functions. initialized the uart MSR and smb MSR. + * 3, write out a new i2cread instead for spd read + * + */ + +#ifndef _KERNEL +#define _KERNEL +#endif + +#include +#include +#include +#include + +#include "pmon/dev/ns16550.h" +#include "target/prid.h" +#include "target/sbd.h" +#include "target/bonito.h" +#include "target/via686b.h" +#include "target/cs5536.h" +#include "target/cs5536_pci.h" +#include "target/i8254.h" +#include "target/isapnpreg.h" +#define DEBUG_LOCORE + +//#include "cs5536.h" +#define TEST_CS5536_ID + +/***************************************************************/ +/* all the define are put into Target/bonito/include/bonito.h */ +/***************************************************************/ + + +/*********(qiaochong) memeory initialization use macro,not smbbus *********/ + +/*bit 31: DDRÅäÖýáÊø±êÖ¾£¬1±íʾ½áÊø£¬Ö»¶Á*/ +#define DDR_DQS_SELECT (0<<30) /*bit 30 Ñ¡ÔñÊý¾ÝÀ´Ô´£¬0: Ë«ÑزÉÑù£»1£ºDQS²ÉÑù*/ +#define DDR_DIMM_DIC (1<<29) /*bit 29 ±êʶDIMM_slot0ÊÇ·ñ²åÓÐÄÚ´æÌõ¡£0£ºÎÞ£»1£ºÓУ»*/ +#define DDR_DIMM_MODULE_NUM (3<<27) +/*bit 28:27 DIMM0/DIMM1ÉÏMOUDLEµÄÊýÄ¿£º + 2' b00£ºDIMM1: 1; DIMM0: 1 + 2¡¯b01£ºDIMM1: 1; DIMM0: 2 + 2¡¯b10£ºDIMM1: 2; DIMM0: 1 + 2¡¯b11£ºDIMM1: 2; DIMM0: 2 +*/ +#define DDR_IS_SEQ (1<<26) +/*bit 26 ÒåÍ»·¢Ê½¶ÁдʱµÄ¿éÄÚ˳Ðò£¬1¡¯b0£ºË³Ðò£»1¡¯b1£º½»Ì棬ÏÖÔÚÖ»Ö§³Ö½»Ì淽ʽ*/ +#define DDR_TYPE (5<<22) +/*bit 25:22 ±í2£ºDDR ¿ØÖÆÆ÷ËùÖ§³ÖµÄDDR SDRAM ¼ÆоƬÀàÐÍ + BITS Density Org. Row Addr. Col Addr. + 0000 64Mb 16Mb X 4 DA[11:0] DA[9:0] 128Mb 16Mb X 8 + 0001 64Mb 8Mb X 8 DA[11:0] DA[8:0] 128Mb 8Mb X 16 + 0010 64Mb 4Mb X 16 DA[11:0] DA[7:0] + 0011 128Mb 32Mb X 4 DA[11:0] DA[11],DA[9:0] + 0100 256Mb 64Mb X 4 DA[12:0] DA[11],DA[9:0] 512Mb 64Mb X 8 + 0101 256Mb 32Mb X 8 DA[12:0] DA[9:0] 512Mb 32Mb X 16 + 0110 256Mb 16Mb X 16 DA[12:0] DA[8:0] + 0111 512Mb 128Mb X 4 DA[12:0] DA[12:11],DA[9:0] + 1000 1Gb 256Mb X 4 DA[13:0] DA[12:11],DA[9:0] + 1001 1Gb 128Mb X 8 DA[13:0] DA[11],DA[9:0] + 1010 1Gb 64Mb X 16 DA[13:0] DA[9:0] +*/ +#define DDR_tREF (100<<10) +/*bit 21:10 + SDRAMˢвÙ×÷Ö®¼ä¼ÆÊý£¨Ö÷Ƶ100MHz£©£º + 780 7.8us + 1560 15.6us + SDRAMˢвÙ×÷Ö®¼ä¼ÆÊý£¨Ö÷Ƶ133MHz£©£º + 1040 7.8us + 2080 15.6us + SDRAMˢвÙ×÷Ö®¼ä¼ÆÊý£¨Ö÷Ƶ166MHz£©£º + 1300 7.8us + 2600 15.6us +*/ +#define DDR_TRCD (1<<9) +/*bit 9 ÐеØÖ·ÓÐЧµ½ÁеØÖ·ÓÐЧ֮¼äÐè¾­¹ýµÄ¼ÆÊý + 1¡¯b0 2 cycles£¨DDR100£© + 1¡¯b1 3 cycles£¨DDR266¡¢DDR333£© +*/ +#define DDR_TRPC (1<<7) +/*bit 8:7 AUTO_REFRESHµ½ACTIVEÖ®¼äÐè¾­¹ýµÄ¼ÆÊý + 2¡¯b00 Null + 2¡¯b01 8 cylces £¨DDR100£© + 2¡¯b10 10 cycles£¨DDR266£© + 2¡¯b11 12 cycles£¨DDR333£© +*/ +#define DDR_TRAS (0<<6) +/*bit 6 ACTIVEµ½PRECHARGEÖ®¼äÐè¾­¹ýµÄ¼ÆÊý + 1¡¯b0 5 cycles£¨DDR100£© + 1¡¯b1 7 cycles£¨DDR266¡¢DDR333£© +*/ +#define DDR_TCAS (3<<4) +/*bit 5:4 ´Ó¶ÁÃüÁîµ½µÚÒ»¸öÊý¾Ýµ½À´Ðè¾­¹ýµÄ¼ÆÊý + 2¡¯b00 1.5 cycles + 2¡¯b01 2 cycles + 2¡¯b10 2.5 cycles + 2¡¯b11 3 cycles +*/ +#define DDR_TWR (0<<3) +/*bit 3 д²Ù×÷×îºóÒ»¸öÊý¾Ýµ½PRECHARGEÖ®¼äÐè¾­¹ýµÄ¼ÆÊý + 1¡¯b0 2 cycles£¨DDR100£© + 1¡¯b1 3 cycles£¨DDR266¡¢DDR333£© +*/ +#define DDR_TRP (1<<2) +/*bit 2 PRECHARGEÃüÁîÖ´ÐÐʱ¼ä¼ÆÊý + 1¡¯b0 2 cycles£¨DDR100£© + 1¡¯b1 3 cycles£¨DDR266¡¢DDR333£© +*/ +#define DDR_TRC (1<<0) +/*bit 1:0 ACTIVEÓëACTIVE/AUTO_REFRESHÃüÁîÖ®¼ä¼ÆÊý + 2¡¯b00 Null + 2¡¯b01 7 cycles£¨DDR100£© + 2¡¯b10 9 cycles£¨DDR266£© + 2¡¯b11 10cycles£¨DDR333£© + ×¢£¨ÓÉÓÚprechargeºÍras casµÄÑÓʱ¼ÓÆðÀ´ÕýºÃÂú×ãÕâ¸öÑÓʱ£¬ËùÒÔÔÚDDR¿ØÖÆÆ÷ÀïûÓоßÌ忼ÂÇÕâ¸ö²ÎÊý£© +*/ + +#define sdcfg_DATA DDR_DQS_SELECT|DDR_DIMM_DIC|DDR_DIMM_MODULE_NUM|DDR_IS_SEQ|DDR_TYPE|DDR_tREF|DDR_TRCD|DDR_TRPC|DDR_TRAS|DDR_TCAS|DDR_TWR|DDR_TRP|DDR_TRC + + +/***********************************MAIN FLOW****************************************/ + +#ifdef DEBUG_LOCORE +#define TTYDBG(x) \ + .rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop +#else +#define TTYDBG(x) +#endif + +#define PRINTSTR(x) \ + .rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop + +#define CONFIG_CACHE_64K_4WAY 1 + +#define tmpsize s1 +#define msize s2 +#define bonito s4 +#define dbg s5 +#define sdCfg s6 + +#define CP0_CONFIG $16 +#define CP0_TAGLO $28 +#define CP0_TAGHI $29 + +#define DDR100 0x1d441091 +// #define DDR100 0x0c011091 +#define DDR266 0x0410435e +#define DDR300 0x041453df + +#define DDR_DQ 0xbff00030 /* zgj */ + +/* + * Register usage: + * + * s0 link versus load offset, used to relocate absolute adresses. + * s1 free + * s2 memory size. + * s3 free. + * s4 Bonito base address. + * s5 dbg. + * s6 sdCfg. + * s7 rasave. + * s8 L3 Cache size. + */ + + + .set noreorder + .globl _start + .globl start + .globl __main +_start: +start: + .globl stack +stack = start - 0x4000 /* Place PMON stack below PMON start in RAM */ + +/* NOTE!! Not more that 16 instructions here!!! Right now it's FULL! */ + mtc0 zero, COP_0_STATUS_REG + mtc0 zero, COP_0_CAUSE_REG + li t0, SR_BOOT_EXC_VEC /* Exception to Boostrap Location */ + mtc0 t0, COP_0_STATUS_REG + la sp, stack + la gp, _gp + +// bal uncached /* Switch to uncached address space */ + nop + + bal locate /* Get current execute address */ + nop + +uncached: + or ra, UNCACHED_MEMORY_ADDR + j ra + nop + +/***********************************EXC VECTOR***************************************/ + +/* + * Reboot vector usable from outside pmon. + */ + .align 8 +ext_map_and_reboot: + bal CPU_TLBClear + nop + + li a0, 0xc0000000 + li a1, 0x40000000 + bal CPU_TLBInit + nop + la v0, tgt_reboot + la v1, start + subu v0, v1 + lui v1, 0xffc0 + addu v0, v1 + jr v0 + nop + +/* + * Exception vectors here for rom, before we are up and running. Catch + * whatever comes up before we have a fully fledged exception handler. + */ + .align 9 /* bfc00200 */ + move k0, ra #save ra + la a0, v200_msg + bal stringserial + nop + b exc_common + + .align 7 /* bfc00280 */ + move k0, ra #save ra + la a0, v280_msg + bal stringserial + nop + b exc_common + +/* Cache error */ + .align 8 /* bfc00300 */ + PRINTSTR("\r\nPANIC! Unexpected Cache Error exception! ") + mfc0 a0, COP_0_CACHE_ERR + bal hexserial + nop + b exc_common + +/* General exception */ + .align 7 /* bfc00380 */ + move k0, ra #save ra + la a0, v380_msg + bal stringserial + nop + b exc_common + + .align 8 /* bfc00400 */ + move k0, ra #save ra + la a0, v400_msg + bal stringserial + nop + + + +exc_common: + PRINTSTR("\r\nCAUSE=") + mfc0 a0, COP_0_CAUSE_REG + bal hexserial + nop + PRINTSTR("\r\nSTATUS=") + mfc0 a0, COP_0_STATUS_REG + bal hexserial + nop + PRINTSTR("\r\nERRORPC=") + mfc0 a0, COP_0_ERROR_PC + bal hexserial + nop + PRINTSTR("\r\nEPC=") + mfc0 a0, COP_0_EXC_PC + bal hexserial + nop + PRINTSTR("\r\nDERR0=") + cfc0 a0, COP_0_DERR_0 + bal hexserial + nop + PRINTSTR("\r\nDERR1=") + cfc0 a0, COP_0_DERR_1 + bal hexserial + nop + +// b ext_map_and_reboot + nop + + .align 8 + nop + .align 8 + .word read + .word write + .word open + .word close + .word nullfunction + .word printf + .word vsprintf + .word nullfunction + .word nullfunction + .word getenv + .word nullfunction + .word nullfunction + .word nullfunction + .word nullfunction + +/****************************************LOCATE*********************************/ + +/* + * We get here from executing a bal to get the PC value of the current execute + * location into ra. Check to see if we run from ROM or if this is ramloaded. + */ +locate: + la s0,start + subu s0,ra,s0 + and s0,0xffff0000 + + li t0,SR_BOOT_EXC_VEC + mtc0 t0,COP_0_STATUS_REG + mtc0 zero,COP_0_CAUSE_REG + .set noreorder + + li bonito,PHYS_TO_UNCACHED(BONITO_REG_BASE) + + /* + * we use the godson2f cpu internal uart for debugging, + * so there is no need for sourthbridge uart initial. + */ +#ifdef USE_GODSON2F_UART + + bal initserial + nop + PRINTSTR("\r\n godson2f cpu internal uart test...\r\n") + nop + +#endif + + +#define MOD_MASK 0x00000003 +#define MOD_B 0x00000000 /* byte "modifier" */ +#define MOD_H 0x00000001 /* halfword "modifier" */ +#define MOD_W 0x00000002 /* word "modifier" */ +#if __mips64 +# define MOD_D 0x00000003 /* doubleword "modifier" */ +#endif + +#define OP_MASK 0x000000fc +#define OP_EXIT 0x00000000 /* exit (status) */ +#define OP_DELAY 0x00000008 /* delay (cycles) */ +#define OP_RD 0x00000010 /* read (addr) */ +#define OP_WR 0x00000014 /* write (addr, val) */ +#define OP_RMW 0x00000018 /* read-modify-write (addr, and, or) */ +#define OP_WAIT 0x00000020 /* wait (addr, mask, value) */ + +#define WR_INIT(mod,addr,val) \ + .word OP_WR|mod,PHYS_TO_UNCACHED(addr);\ + .word (val),0 + +#define RD_INIT(mod,addr) \ + .word OP_RD|mod,PHYS_TO_UNCACHED(addr);\ + .word 0,0 + +#define RMW_INIT(mod,addr,and,or) \ + .word OP_RMW|mod,PHYS_TO_UNCACHED(addr);\ + .word (and),(or) + +#define WAIT_INIT(mod,addr,and,or) \ + .word OP_WAIT|mod,PHYS_TO_UNCACHED(addr);\ + .word (mask),(val) + +#define DELAY_INIT(cycles) \ + .word OP_DELAY,(cycles);\ + .word 0,0 + +#define EXIT_INIT(status) \ + .word OP_EXIT,(status);\ + .word 0,0 + +#define BONITO_INIT(r,v) WR_INIT(MOD_W,BONITO_BASE+/**/r,v) +#define BONITO_BIS(r,b) RMW_INIT(MOD_W,BONITO_BASE+(r),~0,b) +#define BONITO_BIC(r,b) RMW_INIT(MOD_W,BONITO_BASE+(r),~(b),0) +#define BONITO_RMW(r,c,s) RMW_INIT(MOD_W,BONITO_BASE+(r),~(c),s) + +#define CFGADDR(idsel,function,reg) ((1<<(11+(idsel)))+((function)<<8)+(reg)) +#define _ISABWR_INIT(mod,function,isabreg,val) \ + WR_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG,CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)>>16) ; \ + RD_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG) ; \ + WR_INIT(mod,PCI_CFG_SPACE+(CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)&0xffff),val) + +#define _ISABRD_INIT(mod,function,isabreg) \ + WR_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG,CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)>>16) ; \ + RD_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG) ; \ + RD_INIT(mod,PCI_CFG_SPACE+(CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)&0xffff)) + + +#define _ISAWR_INIT(isareg,val) \ + WR_INIT(MOD_B,PCI_IO_SPACE+(isareg),val) + +#define _ISARD_INIT(isareg) \ + RD_INIT(MOD_B,PCI_IO_SPACE+(isareg)) + + +#define ISABBWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_B,function,(isabreg),val) +#define ISABHWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_H,function,(isabreg),val) +#define ISABWWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_W,function,isabreg,val) +#define ISAWR_INIT(isareg,val) \ + _ISAWR_INIT(isareg,val) +#define ISARD_INIT(isareg) \ + _ISARD_INIT(isareg) + + bal 1f + nop + + /* bonito endianess */ + BONITO_BIC(BONITO_BONPONCFG,BONITO_BONPONCFG_CPUBIGEND) + BONITO_BIC(BONITO_BONGENCFG,BONITO_BONGENCFG_BYTESWAP|BONITO_BONGENCFG_MSTRBYTESWAP) + BONITO_BIS(BONITO_BONPONCFG, BONITO_BONPONCFG_IS_ARBITER) + + /* + * In certain situations it is possible for the Bonito ASIC + * to come up with the PCI registers uninitialised, so do them here + */ +#define PCI_CLASS_BRIDGE 0x06 +#define PCI_CLASS_SHIFT 24 +#define PCI_SUBCLASS_BRIDGE_HOST 0x00 +#define PCI_SUBCLASS_SHIFT 16 +#define PCI_COMMAND_IO_ENABLE 0x00000001 +#define PCI_COMMAND_MEM_ENABLE 0x00000002 +#define PCI_COMMAND_MASTER_ENABLE 0x00000004 +#define PCI_COMMAND_STATUS_REG 0x04 +#define PCI_MAP_IO 0X00000001 +#define PCI_CFG_SPACE BONITO_PCICFG_BASE + + BONITO_INIT(BONITO_PCICLASS,(PCI_CLASS_BRIDGE << PCI_CLASS_SHIFT) | (PCI_SUBCLASS_BRIDGE_HOST << PCI_SUBCLASS_SHIFT)) + BONITO_INIT(BONITO_PCICMD, BONITO_PCICMD_PERR_CLR|BONITO_PCICMD_SERR_CLR|BONITO_PCICMD_MABORT_CLR|BONITO_PCICMD_MTABORT_CLR|BONITO_PCICMD_TABORT_CLR|BONITO_PCICMD_MPERR_CLR) + //BONITO_INIT(BONITO_PCILTIMER, 0) + BONITO_INIT(BONITO_PCILTIMER, 255) + BONITO_INIT(BONITO_PCIBASE0, 0) + BONITO_INIT(BONITO_PCIBASE1, 0) + BONITO_INIT(BONITO_PCIBASE2, 0) + BONITO_INIT(BONITO_PCIEXPRBASE, 0) + BONITO_INIT(BONITO_PCIINT, 0) + + BONITO_INIT(0x150,0x8000000c) + BONITO_INIT(0x154,0xffffffff) + + BONITO_BIS(BONITO_PCICMD, BONITO_PCICMD_PERRRESPEN) + + BONITO_BIS(BONITO_PCICMD, PCI_COMMAND_IO_ENABLE|PCI_COMMAND_MEM_ENABLE|PCI_COMMAND_MASTER_ENABLE) + + BONITO_BIC(BONITO_BONGENCFG, 0x80) #½û?¹iobc + + #BONITO_BIS(BONITO_BONGENCFG, BONITO_BONGENCFG_BUSERREN) + + /* Set debug mode */ + BONITO_BIS(BONITO_BONGENCFG, BONITO_BONGENCFG_DEBUGMODE) + + /******** added to init southbridge*/ + + /* Set the SMB base address */ + ISABWWR_INIT(4, SMBUS_IO_BASE_ADDR, SMBUS_IO_BASE_VALUE | 0x1) + /* enable the host controller */ + ISABHWR_INIT(4, SMBUS_HOST_CONFIG_ADDR, SMBUS_HOST_CONFIG_ENABLE_BIT) + /* enable the SMB IO ports */ + ISABBWR_INIT(4, PCI_COMMAND_STATUS_REG, PCI_COMMAND_IO_ENABLE) + +/* 15us ISA bus refresh clock */ +#define ISAREFRESH (PT_CRYSTAL/(1000000/15)) + ISARD_INIT(CTC_PORT+PT_CONTROL) + + /* program i8254 ISA refresh counter */ + ISAWR_INIT(CTC_PORT+PT_CONTROL,PTCW_SC(PT_REFRESH)|PTCW_16B|PTCW_MODE(MODE_RG)) + ISAWR_INIT(CTC_PORT+PT_REFRESH, ISAREFRESH & 0xff) + ISAWR_INIT(CTC_PORT+PT_REFRESH, ISAREFRESH >> 8) + + + EXIT_INIT(0) + + +#define Init_Op 0 +#define Init_A0 4 +#define Init_A1 8 +#define Init_A2 12 +#define Init_Size 16 + +1: move a0,ra +reginit: /* local name */ + lw t3, Init_Op(a0) + lw t0, Init_A0(a0) + and t4,t3,OP_MASK + + + +#if 0 + move t5,a0 + + PRINTSTR("a0: "); + move a0,t5 + bal hexserial + nop + + PRINTSTR(" t3: "); + move a0,t3 + bal hexserial + nop + + PRINTSTR(" t0: "); + move a0,t0 + bal hexserial + nop + + PRINTSTR("\r\n"); + move a0,t5 +#endif + /* + * EXIT(STATUS) + */ + bne t4, OP_EXIT, 8f + nop + move v0,t0 + b .done + nop + + /* + * DELAY(CYCLES) + */ +8: bne t4, OP_DELAY, 8f + nop +1: bnez t0,1b + subu t0,1 + b .next + nop + /* + * READ(ADDR) + */ +8: bne t4,OP_RD,8f + nop + and t4,t3,MOD_MASK + + bne t4,MOD_B,1f + nop + lbu t5,0(t0) + b .next + nop +1: bne t4,MOD_H,1f + nop + lhu t5,0(t0) + b .next + nop +1: bne t4,MOD_W,1f + nop +#if __mips64 + lwu t5,0(t0) +#else + lw t5,0(t0) +#endif + b .next + nop +1: +#if __mips64 + lw t5,0(t0) + b .next + nop +#else + b .fatal + nop +#endif + + /* + * WRITE(ADDR,VAL) + */ +8: bne t4,OP_WR,8f + nop + lw t1,Init_A1(a0) + and t4,t3,MOD_MASK + + bne t4,MOD_B,1f + nop + sb t1,0(t0) + b .next + nop +1: bne t4,MOD_H,1f + nop + sh t1,0(t0) + b .next + nop +1: bne t4,MOD_W,1f + nop + sw t1,0(t0) + b .next + nop + +1: +#if __mips64 + sd t1,0(t0) + b .next + nop +#else + b .fatal + nop +#endif + + + /* + * RMW(ADDR,AND,OR) + */ +8: bne t4,OP_RMW,8f + nop + lw t1,Init_A1(a0) + lw t2,Init_A2(a0) + and t4,t3,MOD_MASK + + bne t4,MOD_B,1f + nop + lbu t4,0(t0) + and t4,t1 + or t4,t2 + sb t4,0(t0) + b .next + nop +1: bne t4,MOD_H,1f + nop + lhu t4,0(t0) + and t4,t1 + or t4,t2 + sh t4,0(t0) + b .next + nop +1: bne t4,MOD_W,1f + nop + lw t4,0(t0) + and t4,t1 + or t4,t2 + sw t4,0(t0) + b .next + nop + +1: +#if __mips64 + ld t4,0(t0) + and t4,t1 + or t4,t2 + sd t4,0(t0) + b .next + nop +#else + b .fatal + nop +#endif + + + /* + * WAIT(ADDR,MASK,VAL) + */ +8: bne t4,OP_WAIT,8f + nop + lw t1,Init_A1(a0) + lw t2,Init_A2(a0) + and t4,t3,MOD_MASK + + bne t4,MOD_B,1f + nop +3: lbu t4,0(t0) + and t4,t1 + bne t4,t2,3b + nop + b .next + nop +1: bne t4,MOD_H,1f + nop +3: lhu t4,0(t0) + and t4,t1 + bne t4,t2,3b + nop + b .next + nop +1: bne t4,MOD_W,1f + nop +3: lw t4,0(t0) + and t4,t1 + bne t4,t2,3b + nop + b .next + nop +1: +#if __mips64 +3: ld t4,0(t0) + and t4,t1 + bne t4,t2,3b + nop + b .next + nop +#else + b .fatal + nop +#endif + + +.next: addu a0,Init_Size + b reginit + nop + +8: +.fatal: b .done + nop + bal stuck + nop +.done: + + /* + * pre-initial the sourthbridge superio module. + */ + +#ifdef USE_GODSON2F_UART + + PRINTSTR("\r\njust before superio init...\r\n") + +#ifdef TEST_CS5536_ID + +#define TEST_PCICONF_READW(dev, func, reg) \ + li a0, CFGADDR(dev, func, reg); \ + li a1, PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2, a0, 0xffff; \ + or a1, a2; \ + srl a0, 16; \ + li a2, BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0, BONITO_PCIMAP_CFG(bonito); \ + lw zero, BONITO_PCIMAP_CFG(bonito); \ + lw a0, (a1); + + PRINTSTR("\r\njust before superio init...\r\n") +11: + + li v0, 0xbfd00000; + li v1, 0x02000000; + sw v1, 0(v0); + + TEST_PCICONF_READW(14, 0, 0x00); + move v0, a0; + + li a1, 0x208f1022; + beq a0, a1, 55f; + nop; + + move a0, v0; + bal hexserial; + nop; + TTYDBG("\r\n"); + + li v1, 0x10000 +100: + bnez v1,100b + addiu v1, -1 + + + b 11b; + nop; + +55: + PRINTSTR("\r\nend of cs5536 id test...\r\n"); +#endif /* TEST_CS5536_ID */ + +#endif /* USE_GODSON2F_UART */ + +#if NCS5536 > 0 + bal superio_init + nop +#endif + +#ifndef USE_GODSON2F_UART + + bal initserial + nop +#endif + +/*****************************SMB*******************************/ + +#ifdef TEST_CS5536_SMB +/* + * t4 : the start register number of smb + * t1 : the end register number of smb + */ +#define SLAVE_SMB_ADDR 0xa0 +#define SLAVE_SMB_REG_COUNT 0x100 + PRINTSTR("\r\n cs5536 SMB test...\r\n"); + + move t4, zero; + li t1, SLAVE_SMB_REG_COUNT; +1: + move a0, t4; + bal hexserial; + nop; + PRINTSTR(" "); + nop; + + move a1, t4; + li a0, SLAVE_SMB_ADDR | 0x01; // read op + bal i2cread; + nop; + + move a0, v0; + bal hexserial; + nop; + PRINTSTR("\r\n"); + + bne t4, t1, 1b; + addi t4, 1; + + PRINTSTR("\r\n cs5536 SMB test end....\r\n"); +#endif + +/***************************************************************/ + + +/**********************************DDR2****************************************/ + + PRINTSTR("\r\nPMON2000 MIPS Initializing. Standby...\r\n") + PRINTSTR("ERRORPC=") + mfc0 a0, COP_0_ERROR_PC + bal hexserial + nop + + PRINTSTR(" CONFIG=") + mfc0 a0, COP_0_CONFIG + bal hexserial + nop + PRINTSTR("\r\n") + + PRINTSTR(" PRID=") + mfc0 a0, COP_0_PRID + bal hexserial + nop + PRINTSTR("\r\n") + + bnez s0,1f + nop + li a0,128 + la v0,initmips + jr v0 + nop + + /* + * Now determine DRAM configuration and size by + * reading the I2C EEROM on the DIMMS + */ + +################################################## +#if 0 +#include "i2c.S" + beqz msize,.nodimm + nop + b 2f + nop +.nodimm: + move dbg,a0 + PRINTSTR ("\r\nNo DIMM in all slots,use default configure\r\n") + li msize,0x10000000 + //li sdCfg,0x055043df /* zgj-8-7-14-13 */ +2: + PRINTSTR("DIMM SIZE=") + move a0,msize + bal hexserial + nop + PRINTSTR("\r\n") + + li t0, 0xbff00008 + sd sdCfg, 0(t0) +/* + #### gx 2006-03-17: mode #### + #li t1,0x20 + li t1,0x28 + li t0, 0xbff00000 + sw t1,0(t0) + nop + li t1,0x0 + li t0, 0xbff00000 + sw t1,0x30(t0) + nop + + PRINTSTR("sdcfg="); + move a0,sdCfg + bal hexserial + nop + PRINTSTR("\r\n"); + PRINTSTR("msize="); + move a0,msize + bal hexserial + nop + PRINTSTR("\r\n") +*/ +#endif +############################################## + +/* + * now, we just write ddr2 parameters directly. + * we should use i2c for memory auto detecting. + */ +gs_2f_v3_ddr2_cfg: + TTYDBG ("\r\nenable register space of MEMORY\r\n") + + li t2, 0xbfe00180 + ld a1, 0x0(t2) + /* disable ddr_buffer_cpu according to beijing suggestion. */ + and a1, a1, 0x4ff + /* this is the default setting. */ + #and a1, a1, 0x6ff + /* disable ddr2 config, just for debugging. */ + #or a1, a1, 0x100 + sd a1, 0x0(t2) + + li msize, 0x0f000000 + PRINTSTR("DDR2 config begin...\r\n") + bal ddr2_config + nop + PRINTSTR("DDR2 config end\r\n") + +#if 1 /* read ddr2 registers for debugging */ + li t0, 0xaffffe00 + +not_locked: + ld t1, 0x10(t0) + andi t1, 0x01 + beqz t1, not_locked + nop + + PRINTSTR("DDR2 DLL locked\r\n") + + ld t1, 0xf0(t0) + move a0, t1 + bal hexserial + nop + +#endif + +#if 1 + TTYDBG ("\r\ndisable register space of MEMORY\r\n") + li t2, 0xbfe00180 + ld a1, 0x0(t2) + or a1, a1,0x100 + sd a1, 0x0(t2) +#endif + +#if NCS5536 > 0 + + PRINTSTR("MEMORY TYPE AND SIZE PROBE.\r\n"); + + /* set the default memory size : 256MB */ + li msize, 0x10000000; + + /* read DIMM memory size per side */ + li a0, 0xa1; + li a1, 31; + bal i2cread; + nop; + beqz v0, .nodimm; + nop; + sll a0, v0, 2 + la a1, bigmem + addu a1, a1, s0 + addu a1, a1, a0 + lw tmpsize, (a1) + li a0, 0x10 + blt v0, a0, 2f + nop + sll tmpsize, v0, 22; // multiply by 4M + +2: /* read DIMM number of sides (banks) */ + li a0, 0xa1; + li a1, 5 + bal i2cread + nop + bltu v0, 0x60, .nodimm; + nop; + subu v0, 0x60; + sll tmpsize, v0; + nop; + + move k0, v0 + PRINTSTR("i2c05:"); + move a0, k0 + bal hexserial; + nop + PRINTSTR("\r\n"); + + + move msize, tmpsize; + PRINTSTR("type : ddr2, size = 0x"); + move a0, msize; + srl a0, 20; + bal hexserial; + nop; + PRINTSTR("MB\r\n"); + b 1f; + nop; + +.nodimm : + PRINTSTR("No ddr2 type memory found.\r\n"); + PRINTSTR("Check i2c circuit\r\n"); + PRINTSTR("now, we use default set\r\n"); + b 1f; + nop; + +1: + nop; + +#endif + +// FOR rom access speed update. +#if 1 + li t2, 0xbfe00108; + lw t1, 0(t2); + li a0, 0xffffff83; + and t1, a0; + ori t1, 0xc; + sw t1, 0(t2); + nop; + + li t2, 0xbfe00108; + lw t1, 0(t2); + li a0, 0xffffe0ff; + and t1, a0; + ori t1, 0x0f00; + sw t1, 0(t2); + + PRINTSTR("jlliu : rom speed reg : 0x"); + lw t1, 0(t2); + move a0, t1; + bal hexserial; + nop; + PRINTSTR("\r\n"); +#endif + + +######################skipdimm#################### + + +skipdimm: + + li t1,0 # accumulate pcimembasecfg settings + + /* set bar0 mask and translation to point to SDRAM */ + sub t0,msize,1 + not t0 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE0_MASK_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE0_MASK + or t1,t0 + + li t0,0x00000000 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE0_TRANS_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE0_TRANS + or t1,t0 + or t1,BONITO_PCIMEMBASECFG_MEMBASE0_CACHED + + /* set bar1 to minimum size to conserve PCI space */ + li t0, ~0 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE1_MASK_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE1_MASK + or t1,t0 + + li t0,0x00000000 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE1_TRANS_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE1_TRANS + or t1,t0 + or t1,BONITO_PCIMEMBASECFG_MEMBASE1_CACHED + + sw t1,BONITO_PCIMEMBASECFG(bonito) + + /* enable configuration cycles now */ + lw t0,BONITO_BONPONCFG(bonito) + and t0,~BONITO_BONPONCFG_CONFIG_DIS + sw t0,BONITO_BONPONCFG(bonito) + + PRINTSTR("Init SDRAM Done!\r\n"); + + +/**************************************CACHE*****************************/ + +/* + * Reset and initialize caches to a known state. + */ +#define IndexStoreTagI 0x08 +#define IndexStoreTagD 0x09 +#define IndexStoreTagS 0x0b +#define IndexStoreTagT 0x0a +#define FillI 0x14 + +/* + * RM7000 config register bits. + */ +#define CF_7_SE (1 << 3) /* Secondary cache enable */ +#define CF_7_SC (1 << 31) /* Secondary cache not present */ +#define CF_7_TE (1 << 12) /* Tertiary cache enable */ +#define CF_7_TC (1 << 17) /* Tertiary cache not present */ +#define CF_7_TS (3 << 20) /* Tertiary cache size */ +#define CF_7_TS_AL 20 /* Shift to align */ +#define NOP8 nop;nop;nop;nop;nop;nop;nop;nop +do_caches: + TTYDBG("Sizing caches...\r\n"); + + mfc0 t3, COP_0_CONFIG /* t3 = original config */ + and t3, 0xffffeff0 /* Make sure coherency is OK */ + + and t3, ~(CF_7_TE|CF_7_SE|CF_7_TC|CF_7_SC) /* disable L2/L3 cache */ + mtc0 t3, COP_0_CONFIG + + li t2, 4096 + + srl t1, t3, 9 + and t1, 3 + sllv s3, t2, t1 /* s3 = I cache size */ + +#ifdef CONFIG_CACHE_64K_4WAY + sll s3,2 +#endif + + and t1, t3, 0x20 + srl t1, t1, 1 + addu s4, t1, 16 /* s4 = I cache line size */ + + srl t1, t3, 6 + and t1, 3 + sllv s5, t2, t1 /* s5 = D cache size */ + +#ifdef CONFIG_CACHE_64K_4WAY + sll s5,2 +#endif + + and t1, t3, 0x10 + addu s6, t1, 16 /* s6 = D cache line size */ + TTYDBG("Init caches...\r\n") + + li s7, 0 /* no L2 cache */ + li s8, 0 /* no L3 cache */ + +#if 0 + mfc0 a0, COP_0_PRID + li a1, 0x6303 // for godson2f id + bne a0,a1,1f + nop +#endif + TTYDBG("godson2 caches found\r\n") + bal godson2_cache_init + nop + + /* close L2 cache */ + li a0, 0xbfe00164 + sw zero, 0(a0); + + mfc0 a0,COP_0_CONFIG + and a0,a0,~((1<<12) | 3) + or a0,a0,2 + mtc0 a0,COP_0_CONFIG + +#ifdef DEBUG_LOCORE + TTYDBG("Init caches done, cfg = ") + mfc0 a0, COP_0_CONFIG + bal hexserial + nop + TTYDBG("\r\n\r\n") +#endif + +/***********************MEMORY DEBUGGING AND COPY SELF TO RAM***********************/ + +/* zhb */ +#ifdef TEST_DDR_BEFORE_COPY +/* li t0, 0 */ +/* li t1, 0x90000 */ +/*1: addiu t0, 1 */ +/* bne t0, t1, 1b */ + nop + + TTYDBG("Testing memory...\r\n") + + li t7, 3 +tmem: + li t0, 0xa0000000+1*1024*1024 + li t1, 0xa0000000 + li t2, 0xffffffff +1: + sw t2, 0(t1) + lw t3, 0(t1) + bne t3, t2, 21f + nop + not t2 + sw t2, 0(t1) + lw t3, 0(t1) + bne t3, t2, 21f + not t2 #delay slot + subu t2, 1 + addu t1, 4 + beq t1, t0, 2f + nop +#if 0 //yanhua + and t4, t1, 0x000fffff + bnez t4, skipdot + li a0, '.' + bal tgt_putchar + nop +#endif +skipdot: + b 1b + nop +21: + TTYDBG("Memory test failed at "); + move a0, t1 + bal hexserial + nop + TTYDBG("\r\nWrite="); + move a0, t2 + bal hexserial + nop + TTYDBG("\r\nRead="); + move a0, t3 + bal hexserial + nop + TTYDBG("\r\n"); +//1: +11: + subu t2, 1 + addu t1, 4 + beq t1, t0, 2f + nop + b 1b + nop +2: + TTYDBG("Testing ok...\r\n"); + sub t7,1 + beqz t7, 1f + nop + b tmem + nop +//1: +// b 1b +// nop +#endif + +//#include "machine/newtest/mydebug.S" +1: +bootnow: + TTYDBG("Copy PMON to execute location...\r\n") +#ifdef DEBUG_LOCORE + TTYDBG(" start = 0x") + la a0, start + bal hexserial + nop + TTYDBG("\r\n s0 = 0x") + move a0, s0 + bal hexserial + nop + TTYDBG("\r\n") +#if 1 + TTYDBG("TEST _EDATA...\r\n"); + la a0, _edata; + bal hexserial; + nop; +#endif + + +#endif + la a0, start + li a1, 0xbfc00000 + la a2, _edata + add a2, 31 + and a2, ~31 + or a0, 0xa0000000 + or a2, 0xa0000000 + subu t1, a2, a0 + srl t1, t1, 2 + + move t0, a0 + move t1, a1 + move t2, a2 + + /* copy text section */ + +1: and t3,t0,0x0001ffff + bnez t3,2f + nop + move a0,t0 + bal hexserial + nop + li a0,'\r' + bal tgt_putchar + nop +2: ld t3, 0(t1) + sd t3, 0(t0) + ld t3, 8(t1) /*For speed up*/ + sd t3, 8(t0) + ld t3, 16(t1) + sd t3, 16(t0) + ld t3, 24(t1) + sd t3, 24(t0) + addu t0, 32 + addu t1, 32 + bne t2, t0, 1b + nop + + PRINTSTR("\ncopy text section done.\r\n") + + /* Clear BSS */ + la a0, _edata + la a2, _end + sw zero, 0(a0) + add a0, 7 /*For speed up*/ + and a0, ~7 + add a2, 7 + and a2, ~7 +2: sd zero, 0(a0) + bne a2, a0, 2b + addu a0, 8 + + + TTYDBG("Copy PMON to execute location done.\r\n") +/* zhb */ +#ifdef TEST_DDR_AFTER_COPY +zhb: + TTYDBG("Testing...\r\n") + la a0, start + li a1, 0xbfc00000 + la a2, _edata + or a0, 0xa0000000 + or a2, 0xa0000000 +/* subu s6, a2, a0*/ +/* srl s6, s6, 2*/ + + move t0, a0 + move t1, a1 + move t2, a2 + /* copy text section */ + +1: lw t4, 0(t1) + nop + lw t5, 0(t0) + addu t0, 4 + addu t1, 4 + beq t4, t5, 2f + nop + move a0, t0 + subu a0, 4 + bal hexserial + nop + TTYDBG (" ") + move a0, t4 + bal hexserial + nop + TTYDBG (" ") + move a0, t5 + bal hexserial + nop + TTYDBG ("\r\n") +2: bne t2, t0, 1b + nop + TTYDBG ("test ok!\r\n") +/* +3: beqz zero, 3b + nop +*/ +#endif + +/*********************************TLB*****************************************/ + + TTYDBG("sp="); + move a0, sp + bal hexserial + nop + + li a0, 4096*1024 + sw a0, CpuTertiaryCacheSize /* Set L3 cache size */ + +#if 0 + mfc0 a0,COP_0_CONFIG + and a0,a0,0xfffffff8 + or a0,a0,0x3 + mtc0 a0,COP_0_CONFIG +#endif +// li msize,(512<<20) + + move a0,msize + srl a0,20 + + /* pass pointer to kseg1 tgt_putchar */ + la a1, tgt_putchar + addu a1,a1,s0 + + la a2, stringserial + addu a2,a2,s0 + + /*TTYDBG("\r\nenter initmips...\r\n");*/ + + la v0, initmips + jalr v0 + nop +stuck: +#ifdef DEBUG_LOCORE + TTYDBG("Dumping GT64240 setup.\r\n") + TTYDBG("offset----data------------------------.\r\n") + li s3, 0 +1: + move a0, s3 + bal hexserial + nop + TTYDBG(": ") +2: + add a0, s3, bonito + lw a0, 0(a0) + bal hexserial + addiu s3, 4 + TTYDBG(" ") + li a0, 0xfff + and a0, s3 + beqz a0, 3f + li a0, 0x01f + and a0, s3 + bnez a0, 2b + TTYDBG("\r\n") + b 1b + nop +3: + b 3b + nop + +#else + b stuck + nop +#endif +/* + * Clear the TLB. Normally called from start.S. + */ +#if __mips64 +#define MTC0 dmtc0 +#else +#define MTC0 mtc0 +#endif +LEAF(CPU_TLBClear) + li a3, 0 # First TLB index. + + li a2, PG_SIZE_4K + MTC0 a2, COP_0_TLB_PG_MASK # Whatever... + +1: + MTC0 zero, COP_0_TLB_HI # Clear entry high. + MTC0 zero, COP_0_TLB_LO0 # Clear entry low0. + MTC0 zero, COP_0_TLB_LO1 # Clear entry low1. + + mtc0 a3, COP_0_TLB_INDEX # Set the index. + addiu a3, 1 + li a2, 64 + nop + nop + tlbwi # Write the TLB + + bne a3, a2, 1b + nop + + jr ra + nop +END(CPU_TLBClear) + +/* + * Set up the TLB. Normally called from start.S. + */ +LEAF(CPU_TLBInit) + li a3, 0 # First TLB index. + + li a2, PG_SIZE_16M + MTC0 a2, COP_0_TLB_PG_MASK # All pages are 16Mb. + +1: + and a2, a0, PG_SVPN + MTC0 a2, COP_0_TLB_HI # Set up entry high. + + move a2, a0 + srl a2, a0, PG_SHIFT + and a2, a2, PG_FRAME + ori a2, PG_IOPAGE + MTC0 a2, COP_0_TLB_LO0 # Set up entry low0. + addu a2, (0x01000000 >> PG_SHIFT) + MTC0 a2, COP_0_TLB_LO1 # Set up entry low1. + + mtc0 a3, COP_0_TLB_INDEX # Set the index. + addiu a3, 1 + li a2, 0x02000000 + subu a1, a2 + nop + tlbwi # Write the TLB + + bgtz a1, 1b + addu a0, a2 # Step address 32Mb. + + jr ra + nop +END(CPU_TLBInit) + +/***********************************FUNCTIONS**********************************/ + +LEAF(stringserial) + move a2, ra + addu a1, a0, s0 + lbu a0, 0(a1) +1: + beqz a0, 2f + nop + bal tgt_putchar + addiu a1, 1 + b 1b + lbu a0, 0(a1) + +2: + j a2 + nop +END(stringserial) + +LEAF(outstring) + move a2, ra + move a1, a0 + lbu a0, 0(a1) +1: + beqz a0, 2f + nop + bal tgt_putchar + addiu a1, 1 + b 1b + lbu a0, 0(a1) + +2: + j a2 + nop +END(outstring) + +LEAF(hexserial) + move a2, ra + move a1, a0 + li a3, 7 +1: + rol a0, a1, 4 + move a1, a0 + and a0, 0xf + la v0, hexchar + addu v0, s0 + addu v0, a0 + bal tgt_putchar + lbu a0, 0(v0) + + bnez a3, 1b + addu a3, -1 + + j a2 + nop +END(hexserial) + +LEAF(tgt_putchar) + la v0, COMMON_COM_BASE_ADDR +1: + lbu v1, NSREG(NS16550_LSR)(v0) + and v1, LSR_TXRDY + beqz v1, 1b + nop + + sb a0, NSREG(NS16550_DATA)(v0) + move v1,v0 + la v0, COMMON_COM_BASE_ADDR + bne v0,v1,1b + nop + j ra + nop +END(tgt_putchar) + +/* baud rate definitions, matching include/termios.h */ +#define B0 0 +#define B50 50 +#define B75 75 +#define B110 110 +#define B134 134 +#define B150 150 +#define B200 200 +#define B300 300 +#define B600 600 +#define B1200 1200 +#define B1800 1800 +#define B2400 2400 +#define B4800 4800 +#define B9600 9600 +#define B19200 19200 +#define B38400 38400 +#define B57600 57600 +#define B115200 115200 + +LEAF(initserial) + la v0, COMMON_COM_BASE_ADDR +1: + li v1, FIFO_ENABLE|FIFO_RCV_RST|FIFO_XMT_RST|FIFO_TRIGGER_1 + sb v1, NSREG(NS16550_FIFO)(v0) + li v1, CFCR_DLAB #DLAB + sb v1, NSREG(NS16550_CFCR)(v0) + li v1, NS16550HZ/(16*CONS_BAUD) #set BRDL + sb v1, NSREG(NS16550_DATA)(v0) + srl v1, 8 + sb v1, NSREG(NS16550_IER)(v0) #set BRDH + li v1, CFCR_8BITS #8bit + sb v1, NSREG(NS16550_CFCR)(v0) + li v1, MCR_DTR|MCR_RTS + sb v1, NSREG(NS16550_MCR)(v0) + li v1, 0x0 + sb v1, NSREG(NS16550_IER)(v0) + + move v1, v0 + la v0, COMMON_COM_BASE_ADDR + bne v0, v1, 1b + nop + + j ra + nop +END(initserial) + + + +__main: + j ra + nop + + + .rdata +transmit_pat_msg: + .asciz "\r\nInvalid transmit pattern. Must be DDDD or DDxDDx\r\n" +v200_msg: + .asciz "\r\nPANIC! Unexpected TLB refill exception!\r\n" +v280_msg: + .asciz "\r\nPANIC! Unexpected XTLB refill exception!\r\n" +v380_msg: + .asciz "\r\nPANIC! Unexpected General exception!\r\n" +v400_msg: + .asciz "\r\nPANIC! Unexpected Interrupt exception!\r\n" +hexchar: + .ascii "0123456789abcdef" +bigmem: + .word 0 + .word 0x40000000 + .word 0x80000000 + .word 0x0 + .word 0x0 /*4G fixme*/ + + .text + .align 2 +/* + * I2C Functions used in early startup code to get SPD info from + * SDRAM modules. This code must be entirely PIC and RAM independent. + */ + +/* Delay macro */ +#define DELAY(count) \ + li v0, count; \ +99: \ + bnz vo, 99b;\ + addiu v0, -1 + + +#define I2C_INT_ENABLE 0x80 +#define I2C_ENABLE 0x40 +#define I2C_ACK 0x04 +#define I2C_INT_FLAG 0x08 +#define I2C_STOP_BIT 0x10 +#define I2C_START_BIT 0x20 + +#define I2C_AMOD_RD 0x01 + +#define BUS_ERROR 0x00 +#define START_CONDITION_TRA 0x08 +#define RSTART_CONDITION_TRA 0x10 +#define ADDR_AND_WRITE_BIT_TRA_ACK_REC 0x18 +#define ADDR_AND_READ_BIT_TRA_ACK_REC 0x40 +#define SLAVE_REC_WRITE_DATA_ACK_TRA 0x28 +#define MAS_REC_READ_DATA_ACK_NOT_TRA 0x58 + +#define Index_Store_Tag_D 0x05 +#define Index_Invalidate_I 0x00 +#define Index_Writeback_Inv_D 0x01 +#define Index_Store_Tag_S 0x0b +#define Index_Writeback_Inv_S 0x03 + +LEAF(nullfunction) + jr ra + nop +END(nullfunction) + +LEAF(godson2_cache_init) +####part 2#### +cache_detect_2way: + mfc0 t4, CP0_CONFIG + andi t5, t4, 0x0e00 + srl t5, t5, 9 + andi t6, t4, 0x01c0 + srl t6, t6, 6 + addiu t6, t6, 11 + addiu t5, t5, 11 + addiu t4, $0, 1 + sllv t6, t4, t6 + srl t6,1 + sllv t5, t4, t5 + srl t5,1 + addiu t7, $0, 2 +####part 3#### + lui a0, 0x8000 + addu a1, $0, t5 + addu a2, $0, t6 +cache_init_d2way: +#a0=0x80000000, a1=icache_size, a2=dcache_size +#a3, v0 and v1 used as local registers + mtc0 $0, CP0_TAGHI + addu v0, $0, a0 + addu v1, a0, a2 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x0(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x1(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x2(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 + +#if 1 +1: +cache_init_l24way: + mtc0 $0, CP0_TAGHI + addu v0, $0, a0 + addu v1, a0, 128*1024 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x0(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x1(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x2(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 + + +1: +cache_flush_4way: + addu v0, $0, a0 + addu v1, a0, 128*1024 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Writeback_Inv_S, 0x0(v0) + cache Index_Writeback_Inv_S, 0x1(v0) + cache Index_Writeback_Inv_S, 0x2(v0) + cache Index_Writeback_Inv_S, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +# endif + +1: +cache_flush_i2way: + addu v0, $0, a0 + addu v1, a0, a1 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Invalidate_I, 0x0(v0) +# cache Index_Invalidate_I, 0x1(v0) +# cache Index_Invalidate_I, 0x2(v0) +# cache Index_Invalidate_I, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +1: +cache_flush_d2way: + addu v0, $0, a0 + addu v1, a0, a2 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Writeback_Inv_D, 0x0(v0) + cache Index_Writeback_Inv_D, 0x1(v0) + cache Index_Writeback_Inv_D, 0x2(v0) + cache Index_Writeback_Inv_D, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +1: +cache_init_finish: + nop + jr ra + nop + +cache_init_panic: + TTYDBG("cache init panic\r\n"); +1: b 1b + nop + .end godson2_cache_init + +#define PCICONF_WRITEB(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + or a0,zero,data; \ + sb a0,(a1); + +#if 0 +#define PCICONF_WRITEW(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + or a0,zero,data; \ + sw a0,(a1); +#endif + +#define PCICONF_ORB(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + lbu a2,(a1); \ + ori a2,data; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + sb a2,(a1); +#define SUPERIO_WR(idx,data) \ + li v0,BONITO_PCIIO_BASE_VA+0x3f0; \ + or v1,zero,idx; \ + sb v1,(v0); \ + or v1,zero,data; \ + sb v1,1(v0); + + +/******************************************************************************** + * * + * CS5536 * + * * + ********************************************************************************/ + +#define PCICONF_WRITEW(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + or a0,zero,data; \ + sw a0,(a1); + +#define PCICONF_READW(dev, func, reg) \ + li a0, CFGADDR(dev, func, reg); \ + li a1, PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2, a0, 0xffff; \ + or a1, a2; \ + srl a0, 16; \ + li a2, BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0, BONITO_PCIMAP_CFG(bonito); \ + lw zero, BONITO_PCIMAP_CFG(bonito); \ + lw a0, (a1); + +#define CS5536_MSR_WRITE(reg, lo, hi) \ + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xF4, reg); \ + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xF8, lo); \ + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xFC, hi); + +#define CS5536_MSR_READ(reg) \ + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xF4, reg); \ + PCICONF_READW(PCI_IDSEL_CS5536, 0, 0xF8); \ + PCICONF_READW(PCI_IDSEL_CS5536, 0, 0xFC); + +/* + * gpio bit setting + */ +#define GPIO_HI_BIT(bit, reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + lw v0, 0(v1); \ + li a0, 0x0001; \ + sll a0, bit; \ + or v0, a0; \ + sll a0, 16; \ + not a0; \ + and v0, a0; \ + sw v0, 0(v1); + +#define GPIO_LO_BIT(bit, reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + lw v0, 0(v1); \ + li a0, 0x0001; \ + sll a0, (bit + 16); \ + or v0, a0; \ + srl a0, 16; \ + not a0; \ + and v0, a0; \ + sw v0, 0(v1); + +/* + * io space byte access + */ +#define IO_READ_BYTE(reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + lbu v0, 0(v1); + +#define IO_WRITE_BYTE(reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + sb v0, 0(v1); + +#define IO_READ_DWORD(reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + lw v0, 0(v1); + +#define IO_WRITE_DWORD(reg) \ + lui v1, 0xbfd0; \ + ori v1, reg; \ + sw v0, 0(v1); + +/**********************************************************************/ + +#define HW_POWER_OFF_TIME 0x18000 // Hardware power off delay time is 3s +#define UART1_TX 8 +#define UART1_RX 9 +#define UART2_TX 4 +#define UART2_RX 3 +#define I8259_IRQ 12 +#define MIDE_IRQ 2 +#define GPIO_5 5 +#define SMB_CLK 14 +#define SMB_DATA 15 +#define PWR_BUT (28 - 16) // WE USE HIGH GPIO BANK FOR 28 + +/* + * you should change the LBAR if you want to match the pciscan dispatched address. + */ +#define DIVIL_BASE_ADDR 0xB000 +#define SMB_BASE_ADDR (DIVIL_BASE_ADDR | 0x320) +#define GPIO_BASE_ADDR (DIVIL_BASE_ADDR | 0x000) +#define MFGPT_BASE_ADDR (DIVIL_BASE_ADDR | 0x280) +#define PMS_BASE_ADDR (DIVIL_BASE_ADDR | 0x200) +#define ACPI_BASE_ADDR (DIVIL_BASE_ADDR | 0x2c0) + +LEAF(superio_init) + + // set the id select + li v0, 0xbfd00000; + li v1, PCI_CFG_BASE; + sw v1, 0(v0); + + // read the DEVICE ID and VENDOR ID for debug, correct is 0x208f1022. +2: + PCICONF_READW(PCI_IDSEL_CS5536, 0, 0x00); + + li a1, 0x208f1022; + beq a0, a1, 55f; + nop; + + b 2b; + nop; + +55: + + // set the msr enable + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xf0, 0x01); + + // + // MSR ACCESS + // + + // active all the ports + CS5536_MSR_WRITE((CS5536_GLIU_MSR_BASE | 0x81), 0x0000ffff, 0x0); + +#ifdef TEST_CS5536_MSR_ACCESS + PCICONF_WRITEW(PCI_IDSEL_CS5536, 0, 0xF4, (CS5536_GLIU_MSR_BASE | 0x81)); + PCICONF_READW(PCI_IDSEL_CS5536, 0, 0xF8); + PCICONF_READW(PCI_IDSEL_CS5536, 0, 0xFC); +#endif + + // GLOBAL CONTROL setting + CS5536_MSR_WRITE((CS5536_SB_MSR_BASE | 0x10), 0x00000003, 0x44000030); + + //DD LBAR function checking. + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x0b), SMB_BASE_ADDR, 0xf001); + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x0c), GPIO_BASE_ADDR, 0xf001); + //CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x0d), MFGPT_BASE_ADDR, 0xf001); + //CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x0e), ACPI_BASE_ADDR, 0xf001); + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x0f), PMS_BASE_ADDR, 0xf001); + +//////////////////////////////////////////////////////////////////////////////// + + // + // IO SPACE ACCESS + // + + // enable com1 and place legacy IO to 0x3f8 + // hi : bit+16 = 0 and bit = 1 + // lo : bit+16 = 1 and bit = 0 + +#if defined(USE_CS5536_UART2) || defined(USE_CS5536_UART1) + /* config uart1 as 0x3f8, uart2 as 0x2f8 */ + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x14), 0x04570003, 0x0); + + /* config uart1 legacy configuration */ + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x3a), 0x2, 0x0); + + /* config uart1 gpio */ + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + + /* disable the uart2 pin as input for nas board debug. */ + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_IN_EN); +#if 0 + /* config uart2 as 0x3f8 */ + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x14), 0x04700003, 0x0); +#endif + /* config uart2 legacy configuration */ + CS5536_MSR_WRITE((CS5536_DIVIL_MSR_BASE | 0x3e), 0x2, 0x0); + + /* config uart2 gpio */ + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_OD_EN); + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); +// GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_PU_EN); +// GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_PD_EN); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + +// GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + +#endif + + /* fixup the ide and i8259 irq line. */ + /* IDE irq init */ + GPIO_HI_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + + /* I8259 irq init*/ + GPIO_HI_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_OD_EN); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + + /* PWN_BUT gpio init */ + GPIO_HI_BIT(PWR_BUT, GPIO_BASE_ADDR | GPIOH_IN_EN); + GPIO_HI_BIT(PWR_BUT, GPIO_BASE_ADDR | GPIOH_IN_AUX1_SEL); + GPIO_LO_BIT(PWR_BUT, GPIO_BASE_ADDR | GPIOH_OUT_EN); + GPIO_LO_BIT(PWR_BUT, GPIO_BASE_ADDR | GPIOH_OUT_AUX1_SEL); + GPIO_LO_BIT(PWR_BUT, GPIO_BASE_ADDR | GPIOH_OUT_AUX2_SEL); + + IO_READ_DWORD(PMS_BASE_ADDR | 0x40); + li v1, (1 << 30); + or v0, v1; + IO_WRITE_DWORD(PMS_BASE_ADDR | 0x40); + IO_READ_DWORD(PMS_BASE_ADDR | 0x40); + li v1, (HW_POWER_OFF_TIME << 0); + or v0, v1; + IO_WRITE_DWORD(PMS_BASE_ADDR | 0x40); + IO_READ_DWORD(PMS_BASE_ADDR | 0x40); + li v1, (1 << 31); + or v0, v1; + IO_WRITE_DWORD(PMS_BASE_ADDR | 0x40); + + + /* SMB GPIO init, there are no internal pull-up and pull-down */ + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + + /* SMB initial sequence. */ + /* disable device and config the bus clock */ + li v0, ((0x3c << 1) & 0xfe); + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL2); + + /* polling mode */ + li v0, 0x00; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + + /* Disable slave address, disable slave mode */ + li v0, 0x0; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_ADDR); + + /* Enable the bus master device */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL2); + ori v0, SMB_ENABLE; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL2); + + /* Free STALL after START */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + and v0, ~(SMB_CTRL1_STASTRE | SMB_CTRL1_NMINTE); + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + + /* Send a STOP */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + ori v0, SMB_CTRL1_STOP; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + + /* Clear BER, NEGACK and STASTR bits */ + li v0, (SMB_STS_BER | SMB_STS_NEGACK | SMB_STS_STASTR); + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_STS); + + /* Clear BB bit */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL_STS); + ori v0, SMB_CSTS_BB; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL_STS); + +#ifdef TEST_CS5536_GPIO + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_LO_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_PU_EN); + + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_EN); + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_PU_EN); + GPIO_LO_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_IN_EN); + GPIO_LO_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_AUX1_SEL); + GPIO_LO_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_AUX2_SEL); + GPIO_LO_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_IN_AUX1_SEL); + + +1: + GPIO_HI_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_HI_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + + GPIO_LO_BIT(UART1_TX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(UART1_RX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(UART2_TX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(UART2_RX, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(I8259_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(GPIO_5, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(MIDE_IRQ, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(SMB_CLK, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + GPIO_LO_BIT(SMB_DATA, GPIO_BASE_ADDR | GPIOL_OUT_VAL); + + b 1b; + nop; + +#endif + +#ifdef TEST_CS5536_FLASH // flash test.... + CS5536_MSR_WRITE( (CS5536_DIVIL_MSR_BASE | 0x15), 0x00, 0x00 ); + CS5536_MSR_WRITE( (CS5536_DIVIL_MSR_BASE | 0x10), 0xfffff005, 0x06050000 ); + lui v1, 0xb605; + ori v1, 0x00; + lw v0, 0(v1); + lw zero, 0(v1); + nop; +#endif + +#ifdef TEST_CS5536_USB // USB test... + CS5536_MSR_WRITE( (CS5536_GLIU_MSR_BASE | 0x21), 0x000fffff, 0x40000005 ); + CS5536_MSR_WRITE( (CS5536_USB_MSR_BASE | 0x0b), 0x05000000, 0x02); + lui v1, 0xb500; + ori v1, 0x00; + lw v0, 0(v1); + lw zero, 0(v1); + nop; +#endif + + jr ra; + nop; + +END(superio_init) + +/************************************************************************ + * * + * SMB * + * * + ************************************************************************/ +#define SMBUS_WAIT \ + li a2, 1000; \ +1: \ + li a3, 0x100; \ +2: \ + bnez a3, 2b; \ + addiu a3, -1; \ + lui a0, 0xbfd0;\ + ori a0, (SMB_BASE_ADDR | SMB_STS); \ + lbu a1, 0(a0); \ + andi a1, SMB_STS_SDAST; \ + li a3, 0x0; \ + bnez a1, 3f; \ + nop; \ + lbu a1, 0(a0); \ + andi a1, (SMB_STS_BER | SMB_STS_NEGACK); \ + li a3, 0x01; \ + bnez a1, 3f; \ + nop; \ + addiu a2, -1; \ + bnez a2, 1b; \ + nop; \ + li a3, 0x01; \ +3: \ + nop; + + +/* + * a0 : slave address, 0xa0 for spd + * a1 : slave device register index + * v0 : the returned register value. + */ + +LEAF(i2cread) + andi a0, 0xfe; + move t2, a0; + move t3, a1; + + /* start condition */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + ori v0, SMB_CTRL1_START; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + IO_READ_BYTE(SMB_BASE_ADDR | SMB_STS); + andi v0, SMB_STS_BER; + bnez v0, i2cerr; + nop; + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* send slave address */ + move v0, t2; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_SDA); + IO_READ_BYTE(SMB_BASE_ADDR | SMB_STS); + andi v0, (SMB_STS_BER | SMB_STS_NEGACK); + bnez v0, i2cerr; + nop; + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* acknowledge smbus */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + ori v0, (SMB_CTRL1_ACK); + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + + /* send command */ + move v0, t3; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_SDA); + IO_READ_BYTE(SMB_BASE_ADDR | SMB_STS); + andi v0, (SMB_STS_BER | SMB_STS_NEGACK); + bnez v0, i2cerr; + nop; + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* start condition again */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + ori v0, SMB_CTRL1_START; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + IO_READ_BYTE(SMB_BASE_ADDR | SMB_STS); + andi v0, SMB_STS_BER; + bnez v0, i2cerr; + nop; + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* send salve address again */ + move v0, t2; + ori v0, 0x01; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_SDA); + IO_READ_BYTE(SMB_BASE_ADDR | SMB_STS); + andi v0, (SMB_STS_BER | SMB_STS_NEGACK); + bnez v0, i2cerr; + nop; + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* stop condition */ + li v0, SMB_CTRL1_STOP; + IO_WRITE_BYTE(SMB_BASE_ADDR | SMB_CTRL1); + SMBUS_WAIT; + bnez a3, i2cerr; + nop; + + /* read data */ + IO_READ_BYTE(SMB_BASE_ADDR | SMB_SDA); + +i2cerr : + nop; + + jr ra; + nop; +END(i2cread) + +/************************************************************************* + * * + * DDR2 * + * * + *************************************************************************/ + +#define REG_ADDRESS 0x0 +#define CONFIG_BASE 0xaffffe00 + + + .global ddr2_config + .ent ddr2_config + .set noreorder + .set mips3 +ddr2_config: + move s1, ra +#if 0 + la t0, ddr2_reg_data + dli t1, 0x900000003ff00058 + ld t1, (t1) + andi t1, 0x1 + beqz t1, 1f + nop +#endif + //la t0, ddr2_reg_data_t + la t0, ddr2_reg_data +1: + addu t0, t0, s0 + li t1, 0x1d + li t2, CONFIG_BASE + +reg_write: +#if 0 + move a0,t0 + bal hexserial + nop + + li a0, ' ' + bal tgt_putchar + nop + + move a0,t2 + bal hexserial + nop + + li a0, ' ' + bal tgt_putchar + nop + + move a0,t1 + bal hexserial + nop + + li a0, ' ' + bal tgt_putchar + nop + + lw a1, 0x4(t0) + move a0,a1 + bal hexserial + nop + + lw a1, 0x0(t0) + move a0,a1 + bal hexserial + nop + + li a0, '\r' + bal tgt_putchar + nop + + li a0, '\n' + bal tgt_putchar + nop +#endif + + ld a1, 0x0(t0) + sd a1, REG_ADDRESS(t2) + subu t1, t1, 0x1 + addiu t0, t0, 0x8 + bne t1, $0, reg_write + addiu t2, t2, 0x10 + +#if NCS5536 > 0 + move k0, ra + /* read spd to initialize memory controller */ + li a0, 0xa0 + li a1, 3 //Row Address + bal i2cread + nop + li v1, 15 + sub v1, v0 + and v1, 0x7 + sll v1, 0x8 + li v0, 0xaffffe50 + lw a1, (v0) + and a1, 0xfffff8ff + or a1, v1 + sw a1, (v0) + + li a0, 0xa0 + li a1, 0x04 // Column Address + bal i2cread + nop + li v1, 14 + sub v1, v0 + sll v1, 24 + li v0, 0xaffffe50 + lw a1, (v0) + and a1, 0xffffff + or a1, v1 + sw a1, (v0) + + /* number of CS */ + li a0, 0xa0 + li a1, 5 + bal i2cread + nop + li v1, 0x7 + and v1, v0 + add v1, 1 + li a0, 1 + sll a0, v1 + sub a0, 1 + li v0, 0xaffffe70 + lw v1, 0(v0) + nop + sll a0, a0, 16 + li t0, 0xfff0ffff + and v1, v1, t0 + or v1, v1, a0 + sw v1, 0(v0) + nop + + /* Number of banks */ + li a0, 0xa0 + li a1, 0x11 //Bank + bal i2cread + nop + li v1, 0x4 + beq v1, v0, 1f + nop + li v1, 0x1 + li v0, 0xaffffe10 + sw v1, 4(v0) +1: + move ra, k0 +#endif + + ############start########## + li t2, CONFIG_BASE + la t0,DDR2_CTL_start_DATA_LO + #la t0,ddr2_start_reg + addu t0, t0, s0 + ld a1, 0x0(t0) + sd a1, 0x30(t2) + + + move ra, s1 + jr ra + nop + .set mips0 + .end ddr2_config + + + +/* expanation of "old" is the reserved configuration data for 2f motherboard. */ + .rdata + .align 5 +ddr2_reg_data: +//0000000_0 arefresh 0000000_1 ap 0000000_1 addr_cmp_en 0000000_1 active_aging +DDR2_CTL_00_DATA_LO: .word 0x00000101 +// 0000000_1 ddrii_sdram_mode 0000000_1 concurrentap 0000000_1 bank_split_en 0000000_0 auto_refresh_mode +DDR2_CTL_00_DATA_HI: .word 0x01000100 #no_concurrentap +//DDR2_CTL_00_DATA_HI: .word 0x01010100 +//0000000_0 ecc_disable_w_uc_err 0000000_1 dqs_n_en 0000000_0 dll_bypass_mode 0000000_0 dlllockreg +//DDR2_CTL_01_DATA_LO: .word 0x00010100 #dll_by_pass +DDR2_CTL_01_DATA_LO: .word 0x00010000 +//0000000_0 fwc 0000000_0 fast_write 0000000_0 enable_quick_srefresh 0000000_0 eight_bank_mode +DDR2_CTL_01_DATA_HI: .word 0x00000000 +//0000000_0 no_cmd_init 0000000_0 intrptwritea 0000000_0 intrptreada 0000000_0 intrptapburst +DDR2_CTL_02_DATA_LO: .word 0x00000000 +//0000000_1 priority_en 0000000_0 power_down 0000000_1 placement_en 0000000_1 odt_add_turn_clk_en +DDR2_CTL_02_DATA_HI: .word 0x01000101 +//0000000_1 rw_same_en 0000000_0 reg_dimm_enable 0000000_0 reduc 0000000_0 pwrup_srefresh_exit +DDR2_CTL_03_DATA_LO: .word 0x01000000 +//0000000_1 swap_port_rw_same_en 0000000_1 swap_en 0000000_0 start 0000000_0 srefresh +DDR2_CTL_03_DATA_HI: .word 0x01010000 +//0000000_0 write_modereg 0000000_1 writeinterp 0000000_1 tref_enable 0000000_1 tras_lockout +DDR2_CTL_04_DATA_LO: .word 0x01010101 +//000000_01 rtt_0 000000_00 ctrl_raw 000000_10 axi0_w_priority 000000_10 axi0_r_priority +DDR2_CTL_04_DATA_HI: .word 0x01000202 +//00000_100 column_size 00000_101 caslat 00000_010 addr_pins 000000_10 rtt_pad_termination +//DDR2_CTL_05_DATA_LO: .word 0x04050202 #CL =5 // jlliu old +DDR2_CTL_05_DATA_LO: .word 0x04050202 #CL =4 +//DDR2_CTL_05_DATA_LO: .word 0x04030102 #CL =3 +//00000_000 q_fullness 00000_000 port_data_error_type 00000_000 out_of_range_type 00000_000 max_cs_reg +DDR2_CTL_05_DATA_HI: .word 0x00000000 +//00000_010 trtp 00000_010 trrd 00000_010 temrs 00000_011 tcke +//DDR2_CTL_06_DATA_LO: .word 0x01020203 #125 M +//DDR2_CTL_06_DATA_LO: .word 0x02020203 #400 +//DDR2_CTL_06_DATA_LO: .word 0x02020203 #250M +DDR2_CTL_06_DATA_LO: .word 0x03050203 #800 +//0000_1010 aprebit 00000_100 wrlat 00000_010 twtr 00000_100 twr_int +//DDR2_CTL_06_DATA_HI: .word 0x0a040203 #125 M +//DDR2_CTL_06_DATA_HI: .word 0x0a040204 #400 +//DDR2_CTL_06_DATA_HI: .word 0x0a030203 #250M CL=4 +//DDR2_CTL_06_DATA_HI: .word 0x0a020203 #CL=3 +DDR2_CTL_06_DATA_HI: .word 0x0a040306 #800 +//0000_0000 ecc_c_id 0000_1111 cs_map 0000_0111 caslat_lin_gate 0000_1010 caslat_lin +//DDR2_CTL_07_DATA_LO: .word 0x000f0808 #CL=4//cs_map to cs0-cs3 +//DDR2_CTL_07_DATA_LO: .word 0x000f0606 #CL=3///cs_map to cs0-cs3 +DDR2_CTL_07_DATA_LO: .word 0x00030a0b #CL=5//cs_map to cs0-cs3 +//DDR2_CTL_07_DATA_LO: .word 0x000c0708 #CL=4//cs_map to cs2-cs3 +//0000_0000 max_row_reg 0000_0000 max_col_reg 0000_0010 initaref 0000_0000 ecc_u_id +//DDR2_CTL_07_DATA_HI: .word 0x00000200 +DDR2_CTL_07_DATA_HI: .word 0x00000400 #800 +//0000_0001 odt_rd_map_cs3 0000_0010 odt_rd_map_cs2 0000_0100 odt_rd_map_cs1 0000_1000 odt_rd_map_cs0 +DDR2_CTL_08_DATA_LO: .word 0x00000102 +//0000_0001 odt_wr_map_cs3 0000_0010 odt_wr_map_cs2 0000_0100 odt_wr_map_cs1 0000_1000 odt_wr_map_cs0 +DDR2_CTL_08_DATA_HI: .word 0x00000102 +//0000_0000 port_data_error_id 0000_0000 port_cmd_error_type 0000_0000 port_cmd_error_id 0000_0000 out_of_range_source_id +DDR2_CTL_09_DATA_LO: .word 0x00000000 +//000_00000 ocd_adjust_pup_cs_0 000_00000 ocd_adjust_pdn_cs_0 0000_0100 trp 0000_1000 tdal +//DDR2_CTL_09_DATA_HI: .word 0x00000204 #125 M +//DDR2_CTL_09_DATA_HI: .word 0x00000408 #400 +//DDR2_CTL_09_DATA_HI: .word 0x0000030c #250M +DDR2_CTL_09_DATA_HI: .word 0x0000060c #800 +//00_111111 age_count 000_01111 trc 000_00010 tmrd 000_00000 tfaw +//DDR2_CTL_10_DATA_LO: .word 0x3f070200 #125 M +//DDR2_CTL_10_DATA_LO: .word 0x3f0f0200 #400 +//DDR2_CTL_10_DATA_LO: .word 0x3f0b0200 #250M +DDR2_CTL_10_DATA_LO: .word 0x3f1f0200 #800 +//0_0011101 dll_dqs_delay_2 0_0011101 dll_dqs_delay_1 0_0011101 dll_dqs_delay_0 00_111111 command_age_count +//DDR2_CTL_10_DATA_HI: .word 0x0f0f0f3f //zbin +//DDR2_CTL_10_DATA_HI: .word 0x1515153f //yanhua 533M, 512OK +DDR2_CTL_10_DATA_HI: .word 0x2323233f //yanhua +//DDR2_CTL_10_DATA_HI: .word 0x0f0f0f3f // old +//0_0011101 dll_dqs_delay_6 0_0011101 dll_dqs_delay_5 0_0011101 dll_dqs_delay_4 0_0011101 dll_dqs_delay_3 +//DDR2_CTL_11_DATA_LO: .word 0x0f0f0f0f //zbin +//DDR2_CTL_11_DATA_LO: .word 0x0f0f0f0f //zbin +//DDR2_CTL_11_DATA_LO: .word 0x15151515 //yanhua +DDR2_CTL_11_DATA_LO: .word 0x23232323 //yanhua +//DDR2_CTL_11_DATA_LO: .word 0x0f0f0f0f // old +//0_1011111 wr_dqs_shift 0_1111111 dqs_out_shift 0_0011101 dll_dqs_delay_8 0_0011101 dll_dqs_delay_7 +//DDR2_CTL_11_DATA_HI: .word 0x5f7f0f0f //zbin +//DDR2_CTL_11_DATA_HI: .word 0x5f7f1515 //yanhua +DDR2_CTL_11_DATA_HI: .word 0x5f7f2323 //yanhua +//DDR2_CTL_11_DATA_HI: .word 0x5f7f0f0f // old +//00001011 tras_min 00000000 out_of_range_length 00000000 ecc_u_synd 00000000 ecc_c_synd +//DDR2_CTL_12_DATA_LO: .word 0x05000000 #125 M +//DDR2_CTL_12_DATA_LO: .word 0x0b000000 #400 +//DDR2_CTL_12_DATA_LO: .word 0x05000000 #250M +DDR2_CTL_12_DATA_LO: .word 0x15000000 #800 +//0000000_000101010 dll_dqs_delay_bypass_0 00011100 trfc 00000100 trcd_int +//DDR2_CTL_12_DATA_HI: .word 0x01ff0302 #125/2 M,read_dqs_delay_max +//DDR2_CTL_12_DATA_HI: .word 0x002a0302 #125/2 M +//DDR2_CTL_12_DATA_HI: .word 0x002a0602 #125 M +//DDR2_CTL_12_DATA_HI: .word 0x002a3c04 #400 +//DDR2_CTL_12_DATA_HI: .word 0x002a3c03 #250M +DDR2_CTL_12_DATA_HI: .word 0x002a3c06 #800 +//0000000_000101010 dll_dqs_delay_bypass_2 0000000_000101010 dll_dqs_delay_bypass_1 +//DDR2_CTL_13_DATA_LO: .word 0x01ff01ff #read_dqs_delay_max +DDR2_CTL_13_DATA_LO: .word 0x002a002a +//0000000_000101010 dll_dqs_delay_bypass_4 0000000_000101010 dll_dqs_delay_bypass_3 +//DDR2_CTL_13_DATA_HI: .word 0x01ff01ff #read_dqs_delay_max +DDR2_CTL_13_DATA_HI: .word 0x002a002a +//0000000_000101010 dll_dqs_delay_bypass_6 0000000_000101010 dll_dqs_delay_bypass_5 +//DDR2_CTL_14_DATA_LO: .word 0x01ff01ff #read_dqs_delay_max +DDR2_CTL_14_DATA_LO: .word 0x002a002a +//0000000_000101010 dll_dqs_delay_bypass_8 0000000_000101010 dll_dqs_delay_bypass_7 +//DDR2_CTL_14_DATA_HI: .word 0x01ff01ff #read_dqs_delay_max +DDR2_CTL_14_DATA_HI: .word 0x002a002a +//0000000_000000000 dll_lock 0000000_000100100 dll_increment +DDR2_CTL_15_DATA_LO: .word 0x00000004 +//0000000_010110100 dqs_out_shift_bypass 0000000_010000111 dll_start_point +DDR2_CTL_15_DATA_HI: .word 0x00b40020 +//000000_0000000000 int_ack 0000000_010000111 wr_dqs_shift_bypass +DDR2_CTL_16_DATA_LO: .word 0x00000087 +//00000_00000000000 int_status 00000_00000000000 int_mask +DDR2_CTL_16_DATA_HI: .word 0x000007ff #no_interrupt +//DDR2_CTL_16_DATA_HI: .word 0x00000000 #no_masked +//0_000000000000000 emrs1_data 00_00100000011011 tref +//DDR2_CTL_17_DATA_LO: .word 0x0000004b #125/16 M +//DDR2_CTL_17_DATA_LO: .word 0x0000009c #20 M +//DDR2_CTL_17_DATA_LO: .word 0x000004b0 #125 M +//DDR2_CTL_17_DATA_LO: .word 0x0000081b #400 +//Felix-2008-12-15 +//DDR2_CTL_17_DATA_LO: .word 0x0016101b #800 +DDR2_CTL_17_DATA_LO: .word 0x0016101f +//0_000000000000000 emrs2_data_1 0_000000000000000 emrs2_data_0 +DDR2_CTL_17_DATA_HI: .word 0x00000000 +//0_000000000000000 emrs2_data_3 0_000000000000000 emrs2_data_2 +DDR2_CTL_18_DATA_LO: .word 0x00000000 +//0000000000011100 axi0_en_size_lt_width_instr 0_000000000000000 emrs3_data +DDR2_CTL_18_DATA_HI: .word 0x001c0000 +//0000000011001000 tdll 0000000001101011 tcpd +DDR2_CTL_19_DATA_LO: .word 0x00c8006b +//0100100011100001 tras_max 0000000000000010 tpdex +//DDR2_CTL_19_DATA_HI: .word 0x04b00002 #125 M +//DDR2_CTL_19_DATA_HI: .word 0x48e10002 #400 +DDR2_CTL_19_DATA_HI: .word 0x28e10002 #800 +//0000000011001000 txsr 0000000000011111 txsnr +//DDR2_CTL_20_DATA_LO: .word 0x00c8000f #125 M +//DDR2_CTL_20_DATA_LO: .word 0x00c8001f #400 +DDR2_CTL_20_DATA_LO: .word 0x00c8002f #800 +//0000000000000000 xor_check_bits 0000000000000000 version +DDR2_CTL_20_DATA_HI: .word 0x00000000 + //000000000000000000110110 tinit +DDR2_CTL_21_DATA_LO: .word 0x00030d40 #real +//DDR2_CTL_21_DATA_LO: .word 0x00000036 #simulation + //000_0000000000000000000000000000000000000 ecc_c_addr +DDR2_CTL_21_DATA_HI: .word 0x00000000 +//000000000000000000000000000_0000000000000000000000000000000000000 ecc_u_addr +DDR2_CTL_22_DATA_LO: .word 0x00000000 +DDR2_CTL_22_DATA_HI: .word 0x00000000 +//000000000000000000000000000_0000000000000000000000000000000000000 out_of_range_addr +DDR2_CTL_23_DATA_LO: .word 0x00000000 +DDR2_CTL_23_DATA_HI: .word 0x00000000 +//000000000000000000000000000_0000000000000000000000000000000000000 port_cmd_error_addr +DDR2_CTL_24_DATA_LO: .word 0x00000000 +DDR2_CTL_24_DATA_HI: .word 0x00000000 +//0000000000000000000000000000000000000000000000000000000000000000 ecc_c_data +DDR2_CTL_25_DATA_LO: .word 0x00000000 +DDR2_CTL_25_DATA_HI: .word 0x00000000 +//0000000000000000000000000000000000000000000000000000000000000000 ecc_u_data +DDR2_CTL_26_DATA_LO: .word 0x00000000 +DDR2_CTL_26_DATA_HI: .word 0x00000000 +//0000000000000000000000000000000000000000000000000000000000000000 +DDR2_CTL_27_DATA_LO: .word 0x00000000 +DDR2_CTL_27_DATA_HI: .word 0x00000000 +//0000000000000000000000000000000000000000000000000000000000000000 +DDR2_CTL_28_DATA_LO: .word 0x00000000 +DDR2_CTL_28_DATA_HI: .word 0x00000000 +//0000000_1 rw_same_en 0000000_0 reg_dimm_enable 0000000_0 reduc 0000000_0 pwrup_srefresh_exit +DDR2_CTL_start_DATA_LO: .word 0x01000000 +//0000000_1 swap_port_rw_same_en 0000000_1 swap_en 0000000_0 start 0000000_0 srefresh +DDR2_CTL_start_DATA_HI: .word 0x01010100 diff --git a/Targets/Bonito2F7inch/Bonito/startz.S b/Targets/Bonito2F7inch/Bonito/startz.S new file mode 100644 index 00000000..768f05db --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/startz.S @@ -0,0 +1,1115 @@ +/* $Id: startz.S,v 1.1.1.1 2006/06/29 06:43:25 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#ifndef _KERNEL +#define _KERNEL +#endif + +#include +#include +#include +#include + + +#include "pmon/dev/ns16550.h" +#include "target/i82371eb.h" +#include "target/prid.h" +#include "target/sbd.h" +#include "target/bonito.h" +#include "target/i8254.h" +#include "target/pc97307.h" +#include "target/isapnpreg.h" +#define DEBUG_LOCORE +#undef DEBUG_DIMM_SPD +#ifdef DEBUG_LOCORE +#define TTYDBG(x) \ + .rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop +#else +#define TTYDBG(x) +#endif +#define PRINTSTR(x) \ + .rdata;98: .asciz x; .text; la a0, 98b; bal stringserial; nop + +#define CONFIG_CACHE_64K_4WAY 1 + +#define tmpsize s1 +#define msize s2 +#define sdShape s3 +#define bonito s4 +#define dbg s5 +#define sdCfg s6 + +#define CFG_IB 0x00000020 +#define CFG_DB 0x00000010 +#define CFG_C_WBACK 3 +#define CFG_BE 0x00008000 +#define CFG_EPMASK 0x0f000000 +#define CFG_EPD 0x00000000 +#define CFG_EM_R4K 0x00000000 +#define CFG_EMMASK 0x00c00000 +#define CFG_AD 0x00800000 + +#define CP0_CONFIG $16 +#define CP0_TAGLO $28 +#define CP0_TAGHI $29 + +#define DDR100 0x1d441091 +/* +#define DDR100 0x0c011091*/ +#define DDR266 0x0410435e +#define DDR300 0x041453df + +/* + * Register usage: + * + * s0 link versus load offset, used to relocate absolute adresses. + * s1 free + * s2 memory size. + * s3 sdShape. + * s4 Bonito base address. + * s5 dbg. + * s6 sdCfg. + * s7 rasave. + * s8 L3 Cache size. + */ + + + .set noreorder + .globl _start + .globl start + .globl __main +_start: +start: + .globl stack +stack = start - 0x4000 /* Place PMON stack below PMON start in RAM */ + +/* NOTE!! Not more that 16 instructions here!!! Right now it's FULL! */ + mtc0 zero, COP_0_STATUS_REG + mtc0 zero, COP_0_CAUSE_REG + li t0, SR_BOOT_EXC_VEC /* Exception to Boostrap Location */ + mtc0 t0, COP_0_STATUS_REG + la sp, stack + la gp, _gp + + bal uncached /* Switch to uncached address space */ + nop + + bal locate /* Get current execute address */ + nop + +uncached: + or ra, UNCACHED_MEMORY_ADDR + j ra + nop + +/* + * Exception vectors here for rom, before we are up and running. Catch + * whatever comes up before we have a fully fledged exception handler. + */ + .align 8 + nop + .align 8 + .word read + .word write + .word open + .word close + .word nullfunction + .word printf + .word vsprintf + .word nullfunction + .word nullfunction + .word getenv + .word nullfunction + .word nullfunction + .word nullfunction + .word nullfunction + + +/* + * We get here from executing a bal to get the PC value of the current execute + * location into ra. Check to see if we run from ROM or if this is ramloaded. + */ +locate: + la s0,start + subu s0,ra,s0 + and s0,0xffff0000 + + li t0,SR_BOOT_EXC_VEC + mtc0 t0,COP_0_STATUS_REG + mtc0 zero,COP_0_CAUSE_REG + .set noreorder + + li bonito,PHYS_TO_UNCACHED(BONITO_REG_BASE) + +#define MOD_MASK 0x00000003 +#define MOD_B 0x00000000 /* byte "modifier" */ +#define MOD_H 0x00000001 /* halfword "modifier" */ +#define MOD_W 0x00000002 /* word "modifier" */ +#if __mips64 +# define MOD_D 0x00000003 /* doubleword "modifier" */ +#endif + +#define OP_MASK 0x000000fc +#define OP_EXIT 0x00000000 /* exit (status) */ +#define OP_DELAY 0x00000008 /* delay (cycles) */ +#define OP_RD 0x00000010 /* read (addr) */ +#define OP_WR 0x00000014 /* write (addr, val) */ +#define OP_RMW 0x00000018 /* read-modify-write (addr, and, or) */ +#define OP_WAIT 0x00000020 /* wait (addr, mask, value) */ + +#define WR_INIT(mod,addr,val) \ + .word OP_WR|mod,PHYS_TO_UNCACHED(addr);\ + .word (val),0 + +#define RD_INIT(mod,addr) \ + .word OP_RD|mod,PHYS_TO_UNCACHED(addr);\ + .word 0,0 + +#define RMW_INIT(mod,addr,and,or) \ + .word OP_RMW|mod,PHYS_TO_UNCACHED(addr);\ + .word (and),(or) + +#define WAIT_INIT(mod,addr,and,or) \ + .word OP_WAIT|mod,PHYS_TO_UNCACHED(addr);\ + .word (mask),(val) + +#define DELAY_INIT(cycles) \ + .word OP_DELAY,(cycles);\ + .word 0,0 + +#define EXIT_INIT(status) \ + .word OP_EXIT,(status);\ + .word 0,0 + +#define BONITO_INIT(r,v) WR_INIT(MOD_W,BONITO_BASE+/**/r,v) +#define BONITO_BIS(r,b) RMW_INIT(MOD_W,BONITO_BASE+(r),~0,b) +#define BONITO_BIC(r,b) RMW_INIT(MOD_W,BONITO_BASE+(r),~(b),0) +#define BONITO_RMW(r,c,s) RMW_INIT(MOD_W,BONITO_BASE+(r),~(c),s) + +#define CFGADDR(idsel,function,reg) ((1<<(11+(idsel)))+((function)<<8)+(reg)) +#define _ISABWR_INIT(mod,function,isabreg,val) \ + WR_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG,CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)>>16) ; \ + RD_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG) ; \ + WR_INIT(mod,PCI_CFG_SPACE+(CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)&0xffff),val) + +#define _ISABRD_INIT(mod,function,isabreg) \ + WR_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG,CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)>>16) ; \ + RD_INIT(MOD_W,BONITO_BASE+BONITO_PCIMAP_CFG) ; \ + RD_INIT(mod,PCI_CFG_SPACE+(CFGADDR(PCI_IDSEL_VIA686B,function,isabreg)&0xffff)) + + +#define _ISAWR_INIT(isareg,val) \ + WR_INIT(MOD_B,PCI_IO_SPACE+(isareg),val) + +#define _ISARD_INIT(isareg) \ + RD_INIT(MOD_B,PCI_IO_SPACE+(isareg)) + + +#define ISABBWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_B,function,(isabreg),val) +#define ISABHWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_H,function,(isabreg),val) +#define ISABWWR_INIT(function,isabreg,val) \ + _ISABWR_INIT(MOD_W,function,isabreg,val) +#define ISAWR_INIT(isareg,val) \ + _ISAWR_INIT(isareg,val) +#define ISARD_INIT(isareg) \ + _ISARD_INIT(isareg) + + bal 1f + nop + + /* + * In certain situations it is possible for the Bonito ASIC + * to come up with the PCI registers uninitialised, so do them here + */ +#define PCI_CLASS_BRIDGE 0x06 +#define PCI_CLASS_SHIFT 24 +#define PCI_SUBCLASS_BRIDGE_HOST 0x00 +#define PCI_SUBCLASS_SHIFT 16 +#define PCI_COMMAND_IO_ENABLE 0x00000001 +#define PCI_COMMAND_MEM_ENABLE 0x00000002 +#define PCI_COMMAND_MASTER_ENABLE 0x00000004 +#define PCI_COMMAND_STATUS_REG 0x04 +#define PCI_MAP_IO 0X00000001 +#define PCI_DEV_VIA686B 17 +#define PCI_CFG_SPACE BONITO_PCICFG_BASE + + +#define Init_Op 0 +#define Init_A0 4 +#define Init_A1 8 +#define Init_A2 12 +#define Init_Size 16 + +1: move a0,ra +.done: + +/* plj. initialize southbridge */ + li a0,CFGADDR(PCI_DEV_VIA686B,3,PCI_COMMAND_STATUS_REG) + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE) + and a2,a0,0xffff + or a1,a2 + srl a0,16 + li a2,BONITO_BASE+BONITO_PCIMAP_CFG + sw a0,BONITO_PCIMAP_CFG(bonito) + lw zero,BONITO_PCIMAP_CFG(bonito) + lw t0,(a1) + ori t0, 0x02|0x04 + sw a0,BONITO_PCIMAP_CFG(bonito) + lw zero,BONITO_PCIMAP_CFG(bonito) + sw t0,(a1) + + /* Initialise other low-level I/O devices */ + bal superio_init + nop + + bal initserial + nop + + + PRINTSTR("\r\nPMON2000 MIPS Initializing. Standby...\r\n") + + PRINTSTR("ERRORPC=") + mfc0 a0, COP_0_ERROR_PC + bal hexserial + nop + + PRINTSTR(" CONFIG=") + mfc0 a0, COP_0_CONFIG + bal hexserial + nop + PRINTSTR("\r\n") + + PRINTSTR(" PRID=") + mfc0 a0, COP_0_PRID + bal hexserial + nop + PRINTSTR("\r\n") + +#if 0 /* zhb cpu*/ + li msize,0x10000000 + #li sdCfg,0x0544e091 + #li sdCfg,0x1d44e091 + li sdCfg,0x3d500081 #~133MHz +# li sdCfg,0x3d540081 #~166MHz + li t0, 0xbff00008 + sd sdCfg, 0(t0) + + #### gx 2006-03-17: mode #### + #li t1,0x20 + li t1,0x28 + li t0, 0xbff00000 + sw t1,0(t0) + nop + li t1,0x0 + li t0, 0xbff00000 + sw t1,0x30(t0) + nop + +/* + lui t0, 0xbff0 + lui t1, 0x2000 + dsll t1, t1, 8 + sd t1, 0x20(t0) + lui t1, 0x1000 + sd t1, 0x28(t0) +*/ + +#endif +#if 1//def DBGSBD + PRINTSTR("sdcfg="); + move a0,sdCfg + bal hexserial + nop + PRINTSTR("\r\n"); + PRINTSTR("msize="); + move a0,msize + bal hexserial + nop + PRINTSTR("\r\n") + +#endif +skipdimm: + + li t1,0 # accumulate pcimembasecfg settings + + /* set bar0 mask and translation to point to SDRAM */ + sub t0,msize,1 + not t0 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE0_MASK_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE0_MASK + or t1,t0 + + li t0,0x00000000 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE0_TRANS_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE0_TRANS + or t1,t0 + or t1,BONITO_PCIMEMBASECFG_MEMBASE0_CACHED + + /* set bar1 to minimum size to conserve PCI space */ + li t0, ~0 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE1_MASK_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE1_MASK + or t1,t0 + + li t0,0x00000000 + srl t0,BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE1_TRANS_SHIFT + and t0,BONITO_PCIMEMBASECFG_MEMBASE1_TRANS + or t1,t0 + or t1,BONITO_PCIMEMBASECFG_MEMBASE1_CACHED + + sw t1,BONITO_PCIMEMBASECFG(bonito) + + /* enable configuration cycles now */ + lw t0,BONITO_BONPONCFG(bonito) + and t0,~BONITO_BONPONCFG_CONFIG_DIS + sw t0,BONITO_BONPONCFG(bonito) + + PRINTSTR("Init SDRAM Done!\r\n"); + +/* + * Reset and initialize caches to a known state. + */ +#define IndexStoreTagI 0x08 +#define IndexStoreTagD 0x09 +#define IndexStoreTagS 0x0b +#define IndexStoreTagT 0x0a +#define FillI 0x14 + +/* + * RM7000 config register bits. + */ +#define CF_7_SE (1 << 3) /* Secondary cache enable */ +#define CF_7_SC (1 << 31) /* Secondary cache not present */ +#define CF_7_TE (1 << 12) /* Tertiary cache enable */ +#define CF_7_TC (1 << 17) /* Tertiary cache not present */ +#define CF_7_TS (3 << 20) /* Tertiary cache size */ +#define CF_7_TS_AL 20 /* Shift to align */ +#define NOP8 nop;nop;nop;nop;nop;nop;nop;nop +do_caches: + TTYDBG("Sizing caches...\r\n"); + + mfc0 t3, COP_0_CONFIG /* t3 = original config */ + and t3, 0xffffeff0 /* Make sure coherency is OK */ + + and t3, ~(CF_7_TE|CF_7_SE|CF_7_TC|CF_7_SC) /* disable L2/L3 cache */ + mtc0 t3, COP_0_CONFIG + + li t2, 4096 + + srl t1, t3, 9 + and t1, 3 + sllv s3, t2, t1 /* s3 = I cache size */ + +#ifdef CONFIG_CACHE_64K_4WAY + sll s3,2 +#endif + + and t1, t3, 0x20 + srl t1, t1, 1 + addu s4, t1, 16 /* s4 = I cache line size */ + + srl t1, t3, 6 + and t1, 3 + sllv s5, t2, t1 /* s5 = D cache size */ + +#ifdef CONFIG_CACHE_64K_4WAY + sll s5,2 +#endif + + and t1, t3, 0x10 + addu s6, t1, 16 /* s6 = D cache line size */ + TTYDBG("Init caches...\r\n") + + li s7, 0 /* no L2 cache */ + li s8, 0 /* no L3 cache */ + +#if 0 + mfc0 a0, COP_0_PRID + li a1, 0x6301 + bne a0,a1,1f + nop +#endif + TTYDBG("godson2 caches found\r\n") + bal godson2_cache_init + nop + +#ifdef DEBUG_LOCORE + TTYDBG("Init caches done, cfg = ") + mfc0 a0, COP_0_CONFIG + bal hexserial + nop + TTYDBG("\r\n\r\n") +#endif + +/* zhb */ +#if 0 +/* li t0, 0 */ +/* li t1, 0x90000 */ +/*1: addiu t0, 1 */ +/* bne t0, t1, 1b */ + nop + + TTYDBG("Testing memory...\r\n") + + li t7, 10 +tmem: + li t0, 0xa0000000+1*1024*1024 + li t1, 0xa0000000 + li t2, 0xffffffff +1: + sw t2, 0(t1) + lw t3, 0(t1) + bne t3, t2, 1f + nop + not t2 + sw t2, 0(t1) + lw t3, 0(t1) + bne t3, t2, 1f + nop + not t2 + subu t2, 1 + addu t1, 4 + beq t1, t0, 2f + nop + and t4, t1, 0x000fffff + bnez t4, skipdot + li a0, '.' + bal tgt_putchar + nop +skipdot: + b 1b + nop +1: + TTYDBG("Memory test failed at "); + move a0, t1 + bal hexserial + nop + TTYDBG("\r\nWrite="); + move a0, t2 + bal hexserial + nop + TTYDBG("\r\nRead="); + move a0, t3 + bal hexserial + nop +1: + b 1b + nop +2: + TTYDBG("Testing ok...\r\n"); + sub t7,1 + beqz t7, 1f + nop + b tmem + nop +1: + b 1b + nop +#endif + + /* Clear BSS */ + la a0, _edata + la a2, _end +2: sw zero, 0(a0) + bne a2, a0, 2b + addu a0, 4 + + TTYDBG("Clear PMON BBS done.\r\n") +/* zhb */ +#if 0 +zhb: + TTYDBG("Testing...\r\n") + la a0, start + li a1, 0xbfc00000 + la a2, _edata + or a0, 0xa0000000 + or a2, 0xa0000000 +/* subu s6, a2, a0*/ +/* srl s6, s6, 2*/ + + move t0, a0 + move t1, a1 + move t2, a2 + /* copy text section */ + +1: lw t4, 0(t1) + nop + lw t5, 0(t0) + addu t0, 4 + addu t1, 4 + beq t4, t5, 2f + nop + move a0, t0 + subu a0, 4 + bal hexserial + nop + TTYDBG (" ") + move a0, t4 + bal hexserial + nop + TTYDBG (" ") + move a0, t5 + bal hexserial + nop + TTYDBG ("\r\n") +2: bne t2, t0, 1b + nop + TTYDBG ("test ok!\r\n") +/* +3: beqz zero, 3b + nop +*/ +#endif + + +#if 0 + mfc0 a0,COP_0_CONFIG + and a0,a0,0xfffffff8 + or a0,a0,0x3 + mtc0 a0,COP_0_CONFIG +#endif + + li a0, 4096*1024 + sw a0, CpuTertiaryCacheSize /* Set L3 cache size */ + move a0,msize + srl a0,20 +#if 1 + li a0,256 +#endif + la v0, initmips + jalr v0 + nop +stuck: +#ifdef DEBUG_LOCORE + TTYDBG("Dumping GT64240 setup.\r\n") + TTYDBG("offset----data------------------------.\r\n") + li s3, 0 +1: + move a0, s3 + bal hexserial + nop + TTYDBG(": ") +2: + add a0, s3, bonito + lw a0, 0(a0) + bal hexserial + addiu s3, 4 + TTYDBG(" ") + li a0, 0xfff + and a0, s3 + beqz a0, 3f + li a0, 0x01f + and a0, s3 + bnez a0, 2b + TTYDBG("\r\n") + b 1b + nop +3: + b 3b + nop + +#else + b stuck + nop +#endif +/* + * Clear the TLB. Normally called from start.S. + */ +#if __mips64 +#define MTC0 dmtc0 +#else +#define MTC0 mtc0 +#endif +LEAF(CPU_TLBClear) + li a3, 0 # First TLB index. + + li a2, PG_SIZE_4K + MTC0 a2, COP_0_TLB_PG_MASK # Whatever... + +1: + MTC0 zero, COP_0_TLB_HI # Clear entry high. + MTC0 zero, COP_0_TLB_LO0 # Clear entry low0. + MTC0 zero, COP_0_TLB_LO1 # Clear entry low1. + + mtc0 a3, COP_0_TLB_INDEX # Set the index. + addiu a3, 1 + li a2, 64 + nop + nop + tlbwi # Write the TLB + + bne a3, a2, 1b + nop + + jr ra + nop +END(CPU_TLBClear) + +/* + * Set up the TLB. Normally called from start.S. + */ +LEAF(CPU_TLBInit) + li a3, 0 # First TLB index. + + li a2, PG_SIZE_16M + MTC0 a2, COP_0_TLB_PG_MASK # All pages are 16Mb. + +1: + and a2, a0, PG_SVPN + MTC0 a2, COP_0_TLB_HI # Set up entry high. + + move a2, a0 + srl a2, a0, PG_SHIFT + and a2, a2, PG_FRAME + ori a2, PG_IOPAGE + MTC0 a2, COP_0_TLB_LO0 # Set up entry low0. + addu a2, (0x01000000 >> PG_SHIFT) + MTC0 a2, COP_0_TLB_LO1 # Set up entry low1. + + mtc0 a3, COP_0_TLB_INDEX # Set the index. + addiu a3, 1 + li a2, 0x02000000 + subu a1, a2 + nop + tlbwi # Write the TLB + + bgtz a1, 1b + addu a0, a2 # Step address 32Mb. + + jr ra + nop +END(CPU_TLBInit) + +/* + * Simple character printing routine used before full initialization + */ +#if 0 +#define TXWAIT 0x100000 +LEAF(tgt_putchar) + /* blocking transmit, with timeout */ + li t0,TXWAIT # timeout +1: lbu t1,PHYS_TO_UNCACHED(0x1fd002fd) # get LSR + and t1,0x20 # tx ready? + bnez t1,1f # yup - go and write + nop + subu t0,1 # continue until timeout + bnez t0,1b + nop +1: sb a0,PHYS_TO_UNCACHED(0x1fd002f8) # write data + li t0,TXWAIT # timeout +1: lbu t1,PHYS_TO_UNCACHED(0x1fd003fd) # get LSR + and t1,0x20 # tx ready? + bnez t1,1f # yup - go and write + nop + subu t0,1 # continue until timeout + bnez t0,1b + nop +1: sb a0,PHYS_TO_UNCACHED(0x1fd003f8) # write data + j ra + nop +END(tgt_putchar) +#endif + +LEAF(stringserial) + move a2, ra + addu a1, a0, s0 + lbu a0, 0(a1) +1: + beqz a0, 2f + nop + bal tgt_putchar + addiu a1, 1 + b 1b + lbu a0, 0(a1) + +2: + j a2 + nop +END(stringserial) +LEAF(outstring) + move a2, ra + move a1, a0 + lbu a0, 0(a1) +1: + beqz a0, 2f + nop + bal tgt_putchar + addiu a1, 1 + b 1b + lbu a0, 0(a1) + +2: + j a2 + nop +END(outstring) +LEAF(hexserial) + move a2, ra + move a1, a0 + li a3, 7 +1: + rol a0, a1, 4 + move a1, a0 + and a0, 0xf + la v0, hexchar + addu v0, s0 + addu v0, a0 + bal tgt_putchar + lbu a0, 0(v0) + + bnez a3, 1b + addu a3, -1 + + j a2 + nop +END(hexserial) +LEAF(tgt_putchar) +# la v0, COM1_BASE_ADDR + la v0, COM3_BASE_ADDR +1: + lbu v1, NSREG(NS16550_LSR)(v0) + and v1, LSR_TXRDY + beqz v1, 1b + nop + + sb a0, NSREG(NS16550_DATA)(v0) + + move v1, v0 + la v0, COM3_BASE_ADDR + bne v0, v1, 1b + nop + + j ra + nop +END(tgt_putchar) +/* baud rate definitions, matching include/termios.h */ +#define B0 0 +#define B50 50 +#define B75 75 +#define B110 110 +#define B134 134 +#define B150 150 +#define B200 200 +#define B300 300 +#define B600 600 +#define B1200 1200 +#define B1800 1800 +#define B2400 2400 +#define B4800 4800 +#define B9600 9600 +#define B19200 19200 +#define B38400 38400 +#define B57600 57600 +#define B115200 115200 + +LEAF(initserial) +# la v0, COM1_BASE_ADDR + la v0, COM3_BASE_ADDR +1: + li v1, FIFO_ENABLE|FIFO_RCV_RST|FIFO_XMT_RST|FIFO_TRIGGER_4 + sb v1, NSREG(NS16550_FIFO)(v0) + li v1, CFCR_DLAB + sb v1, NSREG(NS16550_CFCR)(v0) + li v1, NS16550HZ/(16*CONS_BAUD) + sb v1, NSREG(NS16550_DATA)(v0) + srl v1, 8 + sb v1, NSREG(NS16550_IER)(v0) + li v1, CFCR_8BITS + sb v1, NSREG(NS16550_CFCR)(v0) + li v1, MCR_DTR|MCR_RTS + sb v1, NSREG(NS16550_MCR)(v0) + li v1, 0x0 + sb v1, NSREG(NS16550_IER)(v0) + + move v1, v0 + la v0, COM3_BASE_ADDR + bne v0, v1, 1b + nop + + j ra + nop +END(initserial) + + +LEAF(i2cdump) + jr t4 + nop +END(i2cdump) + + + +LEAF(i2cread) + li v0,-1 + j ra + nop +END(i2cread) + +__main: + j ra + nop + + + .rdata +hexchar: + .ascii "0123456789abcdef" + + .text + .align 2 +/* + * I2C Functions used in early startup code to get SPD info from + * SDRAM modules. This code must be entirely PIC and RAM independent. + */ + +/* Delay macro */ +#define DELAY(count) \ + li v0, count; \ +99: \ + bnz vo, 99b;\ + addiu v0, -1 + + +#define I2C_INT_ENABLE 0x80 +#define I2C_ENABLE 0x40 +#define I2C_ACK 0x04 +#define I2C_INT_FLAG 0x08 +#define I2C_STOP_BIT 0x10 +#define I2C_START_BIT 0x20 + +#define I2C_AMOD_RD 0x01 + +#define BUS_ERROR 0x00 +#define START_CONDITION_TRA 0x08 +#define RSTART_CONDITION_TRA 0x10 +#define ADDR_AND_WRITE_BIT_TRA_ACK_REC 0x18 +#define ADDR_AND_READ_BIT_TRA_ACK_REC 0x40 +#define SLAVE_REC_WRITE_DATA_ACK_TRA 0x28 +#define MAS_REC_READ_DATA_ACK_NOT_TRA 0x58 + +#define Index_Store_Tag_D 0x05 +#define Index_Invalidate_I 0x00 +#define Index_Writeback_Inv_D 0x01 +#define Index_Store_Tag_S 0x0b +#define Index_Writeback_Inv_S 0x03 + +LEAF(nullfunction) + jr ra + nop +END(nullfunction) + +LEAF(godson2_cache_init) +####part 2#### +cache_detect_2way: + mfc0 t4, CP0_CONFIG + andi t5, t4, 0x0e00 + srl t5, t5, 9 + andi t6, t4, 0x01c0 + srl t6, t6, 6 + addiu t6, t6, 11 + addiu t5, t5, 11 + addiu t4, $0, 1 + sllv t6, t4, t6 + srl t6,1 + sllv t5, t4, t5 + srl t5,1 + addiu t7, $0, 2 +####part 3#### + lui a0, 0x8000 + addu a1, $0, t5 + addu a2, $0, t6 +cache_init_d2way: +#a0=0x80000000, a1=icache_size, a2=dcache_size +#a3, v0 and v1 used as local registers + mtc0 $0, CP0_TAGHI + addu v0, $0, a0 + addu v1, a0, a2 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x0(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x1(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x2(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_D, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 + +#if 1 +1: +cache_init_l24way: + mtc0 $0, CP0_TAGHI + addu v0, $0, a0 + addu v1, a0, 128*1024 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x0(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x1(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x2(v0) + mtc0 $0, CP0_TAGLO + cache Index_Store_Tag_S, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 + + +1: +cache_flush_4way: + addu v0, $0, a0 + addu v1, a0, 128*1024 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Writeback_Inv_S, 0x0(v0) + cache Index_Writeback_Inv_S, 0x1(v0) + cache Index_Writeback_Inv_S, 0x2(v0) + cache Index_Writeback_Inv_S, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +# endif + +1: +cache_flush_i2way: + addu v0, $0, a0 + addu v1, a0, a1 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Invalidate_I, 0x0(v0) +# cache Index_Invalidate_I, 0x1(v0) +# cache Index_Invalidate_I, 0x2(v0) +# cache Index_Invalidate_I, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +1: +cache_flush_d2way: + addu v0, $0, a0 + addu v1, a0, a2 +1: slt a3, v0, v1 + beq a3, $0, 1f + nop + cache Index_Writeback_Inv_D, 0x0(v0) + cache Index_Writeback_Inv_D, 0x1(v0) + cache Index_Writeback_Inv_D, 0x2(v0) + cache Index_Writeback_Inv_D, 0x3(v0) + beq $0, $0, 1b + addiu v0, v0, 0x20 +1: +cache_init_finish: + nop + jr ra + nop + +cache_init_panic: + TTYDBG("cache init panic\r\n"); +1: b 1b + nop + .end godson2_cache_init + +#define PCICONF_WRITEB(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + or a0,zero,data; \ + sb a0,(a1); + +#define PCICONF_WRITEW(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,t0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + or a0,zero,data; \ + sw a0,(a1); +#define PCICONF_ORB(dev,func,reg,data) \ + li a0,CFGADDR(dev,func,reg); \ + li a1,PHYS_TO_UNCACHED(PCI_CFG_SPACE); \ + and a2,a0,0xffff; \ + or a1,a2; \ + srl a0,16; \ + li a2,BONITO_BASE+BONITO_PCIMAP_CFG; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + lbu a2,(a1); \ + ori a2,data; \ + sw a0,BONITO_PCIMAP_CFG(bonito); \ + lw zero,BONITO_PCIMAP_CFG(bonito); \ + sb a2,(a1); +#define SUPERIO_WR(idx,data) \ + li v0,BONITO_PCIIO_BASE_VA+0x3f0; \ + or v1,zero,idx; \ + sb v1,(v0); \ + or v1,zero,data; \ + sb v1,1(v0); + +#define E2_EPP 2 +#define E2_S1 (1<<2) +#define E2_S2 (1<<3) +#define E2_FLOPPY (1<<4) + +LEAF(superio_init) + + PCICONF_WRITEW(PCI_IDSEL_VIA686B,0,4,7); + /*positive decode*/ + PCICONF_ORB(PCI_IDSEL_VIA686B,0,0x81,0x80); + PCICONF_WRITEB(PCI_IDSEL_VIA686B,0,0x83,0x80|0x1| 0x8); + PCICONF_WRITEB(PCI_IDSEL_VIA686B,0,0x85,3); + /* enable RTC/PS2/KBC */ + PCICONF_WRITEB(PCI_IDSEL_VIA686B,0,0x5A,7); + + SUPERIO_WR(0xe2,E2_S2|E2_S1|E2_EPP|E2_FLOPPY) /*enable serial and floppy */ + SUPERIO_WR(0xe3,0x3f0>>2) /*floppy base address*/ + SUPERIO_WR(0xe6,0x378>>2) /*parallel port*/ + SUPERIO_WR(0xe7,0x3f8>>2) /*set serial port1 base addr 0x3f8*/ + SUPERIO_WR(0xe8,0x2f8>>2) /*set serial port2 base addr 0x2f8*/ + SUPERIO_WR(0xee,0xc0) /* both ports on high speed*/ + + PCICONF_WRITEB(PCI_IDSEL_VIA686B,0,0x85,1) + jr ra + nop +END(superio_init) + + diff --git a/Targets/Bonito2F7inch/Bonito/tgt_machdep.c b/Targets/Bonito2F7inch/Bonito/tgt_machdep.c new file mode 100644 index 00000000..61d50fa1 --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/tgt_machdep.c @@ -0,0 +1,1405 @@ +/* $Id: tgt_machdep.c,v 1.6 2006/07/20 09:37:06 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ +//#define USE_LEGACY_RTC +#ifdef USE_LEGACY_RTC +# undef NVRAM_IN_FLASH +#else +# define NVRAM_IN_FLASH 1 +# define FLASH_OFFS (tgt_flashmap()->fl_map_size - 0x1000) +#endif + +#include +void tgt_putchar (int); +int +tgt_printf (const char *fmt, ...) +{ + int n; + char buf[1024]; + char *p=buf; + char c; + va_list ap; + va_start(ap, fmt); + n = vsprintf (buf, fmt, ap); + va_end(ap); + while((c=*p++)) + { + if(c=='\n')tgt_putchar('\r'); + tgt_putchar(c); + } + return (n); +} + +#if 1 +#include +#include +#include +#include +#include +#include +#include +#include +#endif +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include "pflash.h" +#include "dev/pflash_tgt.h" + +#include "../pci/cs5536_io.h" +#include "include/bonito.h" +#ifdef LOONGSON2F_7INCH +#include "kb3310.h" +#endif +#include +#include + +#include + +#include "mod_x86emu_int10.h" +#include "mod_x86emu.h" +#include "mod_vgacon.h" +#include "mod_framebuffer.h" +extern int vga_bios_init(void); +extern int radeon_init(void); +extern int smi712_init(unsigned char *, unsigned char *); +extern int kbd_initialize(void); +extern int write_at_cursor(char val); +extern const char *kbd_error_msgs[]; +#include "flash.h" + +extern int fl_program(void *fl_base, void *data_base, int data_size, int verbose); + +//#include "vt82c686.h" +#include "cs5536.h" +#include "target/cs5536.h" + +#if (NCS5536 + NVT82C686) > 0 +#define HAVE_RTC 1 +#else +#define HAVE_RTC 0 +#endif + +#if (NMOD_FLASH_AMD + NMOD_FLASH_INTEL + NMOD_FLASH_SST + NMOD_FLASH_WINBOND) == 0 + +#ifdef HAVE_FLASH +#undef HAVE_FLASH +#endif + +#else + +#ifndef HAVE_FLASH +#define HAVE_FLASH +#endif + +#endif + +#if NMOD_X86EMU_INT10 != 0 || NMOD_X86EMU != 0 +#ifdef VGA_NO_ROM +#include "vgarom.c" +#endif +#endif + +extern struct trapframe DBGREG; + +extern void *memset(void *, int, size_t); + +int kbd_available = 0; +int usb_kbd_available; +int vga_available = 0; +static int vga_ok = 0; + +static int md_pipefreq = 0; +static int md_cpufreq = 0; +static int clk_invalid = 0; +static int nvram_invalid = 0; +static int *ec_version; +static int cksum(void *p, size_t s, int set); +static void _probe_frequencies(void); + +#ifndef NVRAM_IN_FLASH +void nvram_get(char *); +void nvram_put(char *); +#endif + +extern int vgaterm(int op, struct DevEntry * dev, unsigned long param, int data); +extern int fbterm(int op, struct DevEntry * dev, unsigned long param, int data); +void error(unsigned long *adr, unsigned long good, unsigned long bad); +void modtst(int offset, int iter, unsigned long p1, unsigned long p2); +void do_tick(void); +void print_hdr(void); +void ad_err2(unsigned long *adr, unsigned long bad); +void ad_err1(unsigned long *adr1, unsigned long *adr2, unsigned long good, unsigned long bad); +void mv_error(unsigned long *adr, unsigned long good, unsigned long bad); + +void print_err( unsigned long *adr, unsigned long good, unsigned long bad, unsigned long xor); +static inline unsigned char CMOS_READ(unsigned char addr); +static inline void CMOS_WRITE(unsigned char val, unsigned char addr); +#if HAVE_RTC > 0 +static void init_legacy_rtc(void); +#endif + +/* + * NOTE : we use COMMON_COM_BASE_ADDR and NS16550HZ instead the former. please see + * the Targets/Bonito/include/bonito.h for detail. + */ +ConfigEntry ConfigTable[] = +{ + { (char *)COMMON_COM_BASE_ADDR, 0, ns16550, 256, CONS_BAUD, NS16550HZ }, + /*{ (char *)COM2_BASE_ADDR, 0, ns16550, 256, CONS_BAUD, NS16550HZ }, */ +#if NMOD_VGACON >0 +#if NMOD_FRAMEBUFFER >0 + { (char *)1, 0, fbterm, 256, CONS_BAUD, NS16550HZ }, +#else + { (char *)1, 0, vgaterm, 256, CONS_BAUD, NS16550HZ }, +#endif +#endif + { 0 } +}; + +unsigned long _filebase; + +extern unsigned int memorysize_high; + +extern char MipsException[], MipsExceptionEnd[]; + +unsigned char hwethadr[6]; + +void initmips(unsigned int memsz); + +void addr_tst1(void); +void addr_tst2(void); +void movinv1(int iter, ulong p1, ulong p2); + +void +initmips(unsigned int memsz) +{ + /* + * Set up memory address decoders to map entire memory. + * But first move away bootrom map to high memory. + */ +#if 0 + GT_WRITE(BOOTCS_LOW_DECODE_ADDRESS, BOOT_BASE >> 20); + GT_WRITE(BOOTCS_HIGH_DECODE_ADDRESS, (BOOT_BASE - 1 + BOOT_SIZE) >> 20); +#endif + tgt_fpuenable(); + //memsz = 512; + memorysize = memsz > 256 ? 256 << 20 : memsz << 20; + memorysize_high = memsz > 256 ? (memsz - 256) << 20 : 0; + + + /* + * Probe clock frequencys so delays will work properly. + */ + tgt_cpufreq(); + SBD_DISPLAY("DONE",0); + /* + * Init PMON and debug + */ + cpuinfotab[0] = &DBGREG; + dbginit(NULL); + + /* + * Set up exception vectors. + */ + SBD_DISPLAY("BEV1",0); + bcopy(MipsException, (char *)TLB_MISS_EXC_VEC, MipsExceptionEnd - MipsException); + bcopy(MipsException, (char *)GEN_EXC_VEC, MipsExceptionEnd - MipsException); + + CPU_FlushCache(); + + CPU_SetSR(0, SR_BOOT_EXC_VEC); + SBD_DISPLAY("BEV0",0); + + printf("BEV in SR set to zero.\n"); + + + /* + * Launch! + */ + main(); +} + +/* + * Put all machine dependent initialization here. This call + * is done after console has been initialized so it's safe + * to output configuration and debug information with printf. + */ +extern void vt82c686_init(void); +extern void cs5536_init(void); +extern int fb_init(unsigned long,unsigned long); +void +tgt_devconfig() +{ +#if NMOD_VGACON > 0 + int rc; +#if NMOD_FRAMEBUFFER > 0 + unsigned long fbaddress,ioaddress; + extern struct pci_device *vga_dev; +#endif +#endif + _pci_devinit(1); /* PCI device initialization */ + +#if NMOD_X86EMU_INT10 > 0 || NMOD_X86EMU > 0 + SBD_DISPLAY("VGAI", 0); + rc = vga_bios_init(); + +#elif (NMOD_X86EMU_INT10 == 0 && defined(RADEON7000)) + SBD_DISPLAY("VGAI", 0); + rc = radeon_init(); +#endif + +#ifdef SM712_GRAPHIC_CARD + rc = 1; +#endif + +#if NMOD_FRAMEBUFFER > 0 + if (rc > 0) { + SBD_DISPLAY("FRBI", 0); + fbaddress =_pci_conf_read(vga_dev->pa.pa_tag,0x10); + ioaddress =_pci_conf_read(vga_dev->pa.pa_tag,0x18); + + fbaddress = fbaddress &0xffffff00; //laster 8 bit + ioaddress = ioaddress &0xfffffff0; //laster 4 bit + + printf("fbaddress 0x%x\tioaddress 0x%x\n",fbaddress, ioaddress); + +#ifdef SM712_GRAPHIC_CARD + fbaddress |= 0xb0000000; + ioaddress |= 0xbfd00000; + smi712_init((unsigned char *)fbaddress, + (unsigned char *)ioaddress); +#endif + + fb_init(fbaddress, ioaddress); + } else { + printf("vga bios init failed, rc=%d\n",rc); + } +#endif + + /* light the lcd */ + *((volatile unsigned char *)(0xbfd00000 | HIGH_PORT)) = 0xfe; + *((volatile unsigned char *)(0xbfd00000 | LOW_PORT)) = 0x01; + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = 0x80; + + if (rc > 0) { + if(!getenv("novga")) { + vga_available=1; + vga_ok = 2; + } else + vga_ok = 1; + } + + vga_available = 1; /*Suppress the output*/ + + config_init(); + configure(); + +#if NMOD_VGACON >0 +#if !(defined(VGA_NOTEBOOK_V1) || defined(VGA_NOTEBOOK_V2)) && NCS5536 > 0 + rc = kbd_initialize(); +#else + rc = -1; +#endif + printf("%s\n",kbd_error_msgs[rc]); + if(!rc){ + if(!getenv("nokbd")) kbd_available = 1; + } +#endif + if (vga_ok > 1) + vga_available = 1; +} + +extern int test_icache_1(short *addr); +extern int test_icache_2(int addr); +extern int test_icache_3(int addr); +extern void godson1_cache_flush(void); +#define tgt_putchar_uc(x) (*(void (*)(char)) (((long)tgt_putchar)|0x20000000)) (x) + +extern void cs5536_pci_fixup(void); +extern void ec_fixup(void); +extern void ec_update_rom(void *src, int size); + +/* disable AC_BEEP for cs5536 gpio1, * + * only used EC_BEEP to control U13 gate * + * set cs5536 gpio1 output low level voltage * + * huangw 2008-10-16 */ +void cs5536_gpio1_fixup(void) +{ + unsigned long val; + pcitag_t tag; + unsigned long base; + + tag = _pci_make_tag(0, 14, 0); + base = _pci_conf_read(tag, 0x14); + base |= 0xbfd00000; + base &= ~3; + + /* make cs5536 gpio1 output enable */ + val = *(volatile unsigned long *)(base + 0x04); + val = ( val & ~(1 << (16 + 1)) ) | (1 << 1) ; + *(volatile unsigned long *)(base + 0x04) = val; + + /* make cs5536 gpio1 output low level voltage. */ + val = *(volatile unsigned long *)(base + 0x00); + val = (val | (1 << (16 + 1))) & ~(1 << 1); + *(volatile unsigned long *)(base + 0x00) = val; +} + +void +tgt_devinit() +{ + + SBD_DISPLAY("5536",0); + +#if NVT82C686 > 0 + vt82c686_init(); +#endif + +#if NCS5536 > 0 + cs5536_init(); +#endif + + /* + * Gather info about and configure caches. + */ + if(getenv("ocache_off")) { + CpuOnboardCacheOn = 0; + } + else { + CpuOnboardCacheOn = 1; + } + if(getenv("ecache_off")) { + CpuExternalCacheOn = 0; + } + else { + CpuExternalCacheOn = 1; + } + + CPU_ConfigCache(); + + _pci_businit(1); /* PCI bus initialization */ + +#if NCS5536 > 0 + cs5536_pci_fixup(); +#endif + cs5536_gpio1_fixup(); +#ifdef HAS_EC + ec_fixup(); +#endif + + return; +} + + +void +tgt_reboot() +{ + /* reset the cs5536 whole chip */ +#if NCS5536 > 0 && !defined(LOONGSON2F_7INCH) + unsigned long hi, lo; + _rdmsr(0xe0000014, &hi, &lo); + lo |= 0x00000001; + _wrmsr(0xe0000014, hi, lo); +#endif + +#ifdef LOONGSON2F_7INCH + + /* dark the lcd */ + *((volatile unsigned char *)(0xbfd00000 | HIGH_PORT)) = 0xfe; + *((volatile unsigned char *)(0xbfd00000 | LOW_PORT)) = 0x01; + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = 0x00; + +#if 0 + *((volatile unsigned char *)(0xbfd00000 | HIGH_PORT)) = 0xfc; + *((volatile unsigned char *)(0xbfd00000 | LOW_PORT)) = 0x20; + val = *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)); + /* output the low level for reset sequence */ + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = val & (~(1 << 5)); + /* delay for 100~200ms */ + for(i = 0; i < 200; i++); + delay(1000); + /* output the high level for reset sequence */ + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = val | (1 << 5); +#else + *((volatile unsigned char *)(0xbfd00000 | HIGH_PORT)) = 0xf4; + *((volatile unsigned char *)(0xbfd00000 | LOW_PORT)) = 0xec; + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = 0x01; +#endif + +#endif + /* we should not exec until here. */ + //__asm__ ("jr %0\n"::"r"(0xbfc00000)); + + while(1); +} + +void +tgt_poweroff() +{ + unsigned long val; + unsigned long tag; + unsigned long base; + +#ifdef LOONGSON2F_7INCH +#if 0 + *((volatile unsigned char *)(0xbfd00000 | HIGH_PORT)) = 0xfc; + *((volatile unsigned char *)(0xbfd00000 | LOW_PORT)) = 0x29; + val = *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)); + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = val & ~(1 << 1); + for(i = 0; i < 0x10000; i++) + for(j = 0; j < 0x10000; i++); + *((volatile unsigned char *)(0xbfd00000 | DATA_PORT)) = val | (1 << 1); +#else + /* cpu-gpio0 output low */ + *((volatile unsigned long *)(0xbfe0011c)) &= ~0x00000001; + /* cpu-gpio0 as output */ + *((volatile unsigned long *)(0xbfe00120)) &= ~0x00000001; +#endif +#else + tag = _pci_make_tag(0, 14, 0); + base = _pci_conf_read(tag, 0x14); + base |= 0xbfd00000; + base &= ~3; + + /* make cs5536 gpio13 output enable */ + val = *(volatile unsigned long *)(base + 0x04); + val = ( val & ~(1 << (16 + 13)) ) | (1 << 13) ; + *(volatile unsigned long *)(base + 0x04) = val; + + /* make cs5536 gpio13 output low level voltage. */ + val = *(volatile unsigned long *)(base + 0x00); + val = (val | (1 << (16 + 13))) & ~(1 << 13); + *(volatile unsigned long *)(base + 0x00) = val; +#endif + while(1); +} + +/* + * This function makes inital HW setup for debugger and + * returns the apropriate setting for the status register. + */ +register_t +tgt_enable(int machtype) +{ + /* XXX Do any HW specific setup */ + return(SR_COP_1_BIT|SR_FR_32|SR_EXL); +} + + +/* + * Target dependent version printout. + * Printout available target version information. + */ +void +tgt_cmd_vers() +{ +} + +/* + * Display any target specific logo. + */ +void +tgt_logo() +{ +#if 0 + printf("\n"); + printf("[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\n"); + printf("[[[ [[[[ [[[[[[[[[[ [[[[ [[[[ [[[[[[[ [[\n"); + printf("[[ [[[[[[[[ [[[ [[[[[[[[ [[[ [[[[[[[[ [[[ [[[[[[ [[\n"); + printf("[[ [[[[[[[[[[ [[[ [ [[[[[[ [ [[[ [[[[[[[[[[ [[[ [ [[[[[ [[\n"); + printf("[[ [[[[[[[[[[ [[[ [[ [[[[ [[ [[[ [[[[[[[[[[ [[[ [[ [[[[ [[\n"); + printf("[[ [[[[[[[[ [[[ [[[ [[ [[[ [[[ [[[[[[[[[[ [[[ [[[ [[[ [[\n"); + printf("[[ [[[[ [[[[ [[[[ [[[ [[[[[[[[[[ [[[ [[[[ [[ [[\n"); + printf("[[ [[[[[[[[[[[[[[[ [[[[[ [[[[[ [[[ [[[[[[[[[[ [[[ [[[[[ [ [[\n"); + printf("[[ [[[[[[[[[[[[[[[ [[[[[[[[[[[[ [[[ [[[[[[[[[[ [[[ [[[[[[ [[\n"); + printf("[[ [[[[[[[[[[[[[[[ [[[[[[[[[[[[ [[[ [[[[[[[[ [[[ [[[[[[[ [[\n"); + printf("[[ [[[[[[[[[[[[[[[ [[[[[[[[[[[[ [[[[ [[[[ [[[[[[[[ [[\n"); + printf("[[[[[[[2005][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[\n"); +#endif +} + +#if HAVE_RTC > 0 +static void init_legacy_rtc(void) +{ + int year, month, date, hour, min, sec; + + CMOS_WRITE(DS_CTLA_DV1, DS_REG_CTLA); + CMOS_WRITE(DS_CTLB_24 | DS_CTLB_DM | DS_CTLB_SET, DS_REG_CTLB); + CMOS_WRITE(0, DS_REG_CTLC); + CMOS_WRITE(0, DS_REG_CTLD); + year = CMOS_READ(DS_REG_YEAR); + month = CMOS_READ(DS_REG_MONTH); + date = CMOS_READ(DS_REG_DATE); + hour = CMOS_READ(DS_REG_HOUR); + min = CMOS_READ(DS_REG_MIN); + sec = CMOS_READ(DS_REG_SEC); + if( (year > 99) || (month < 1 || month > 12) || + (date < 1 || date > 31) || (hour > 23) || (min > 59) || + (sec > 59) ){ + /* + printf("RTC time invalid, reset to epoch.\n");*/ + CMOS_WRITE(3, DS_REG_YEAR); + CMOS_WRITE(1, DS_REG_MONTH); + CMOS_WRITE(1, DS_REG_DATE); + CMOS_WRITE(0, DS_REG_HOUR); + CMOS_WRITE(0, DS_REG_MIN); + CMOS_WRITE(0, DS_REG_SEC); + } + CMOS_WRITE(DS_CTLB_24 | DS_CTLB_DM, DS_REG_CTLB); + + //printf("RTC: %02d-%02d-%02d %02d:%02d:%02d\n", + // year, month, date, hour, min, sec); +} +#endif + +void suppress_auto_start(void) +{ + /* suppress auto start when power pluged in */ + CMOS_WRITE(0x80, 0xd); +} + +static inline unsigned char CMOS_READ(unsigned char addr) +{ + unsigned char val; + linux_outb_p(addr, 0x70); + val = linux_inb_p(0x71); + return val; +} + +static inline void CMOS_WRITE(unsigned char val, unsigned char addr) +{ + linux_outb_p(addr, 0x70); + linux_outb_p(val, 0x71); +} + +static void +_probe_frequencies() +{ +#if defined(HAVE_TOD) && HAVE_RTC + int i, timeout, cur, sec, cnt; +#endif + + SBD_DISPLAY ("FREQ", CHKPNT_FREQ); + + +#if 1 + md_pipefreq = 300000000; /* Defaults */ + md_cpufreq = 66000000; +#else + md_pipefreq = 120000000; /* NB FPGA*/ + md_cpufreq = 40000000; +#endif + + clk_invalid = 1; + +#if defined(HAVE_TOD) && (NCS5536 >0 || NVT82C686 > 0) + init_legacy_rtc(); + + SBD_DISPLAY ("FREI", CHKPNT_FREQ); + + /* + * Do the next twice for two reasons. First make sure we run from + * cache. Second make sure synched on second update. (Pun intended!) + */ + for(i = 2; i != 0; i--) { + cnt = CPU_GetCOUNT(); + timeout = 10000000; + while(CMOS_READ(DS_REG_CTLA) & DS_CTLA_UIP); + + sec = CMOS_READ(DS_REG_SEC); + + do { + timeout--; + while(CMOS_READ(DS_REG_CTLA) & DS_CTLA_UIP); + + cur = CMOS_READ(DS_REG_SEC); + } while(timeout != 0 && cur == sec); + + cnt = CPU_GetCOUNT() - cnt; + if(timeout == 0) { + break; /* Get out if clock is not running */ + } + } + + /* + * Calculate the external bus clock frequency. + */ + if (timeout != 0) { + clk_invalid = 0; + md_pipefreq = cnt / 10000; + md_pipefreq *= 20000; + /* we have no simple way to read multiplier value + */ + md_cpufreq = 66000000; + } + +#endif /* HAVE_TOD */ +} + + +/* + * Returns the CPU pipelie clock frequency + */ +int +tgt_pipefreq() +{ + if(md_pipefreq == 0) { + _probe_frequencies(); + } + return(md_pipefreq); +} + +/* + * Returns the external clock frequency, usually the bus clock + */ +int +tgt_cpufreq() +{ + if(md_cpufreq == 0) { + _probe_frequencies(); + } + return(md_cpufreq); +} + +time_t +tgt_gettime() +{ + struct tm tm; + int ctrlbsave; + time_t t; + + /*gx 2005-01-17 */ + //return 0; + + if(!clk_invalid) { + ctrlbsave = CMOS_READ(DS_REG_CTLB); + CMOS_WRITE(ctrlbsave | DS_CTLB_SET, DS_REG_CTLB); + + tm.tm_sec = CMOS_READ(DS_REG_SEC); + tm.tm_min = CMOS_READ(DS_REG_MIN); + tm.tm_hour = CMOS_READ(DS_REG_HOUR); + tm.tm_wday = CMOS_READ(DS_REG_WDAY); + tm.tm_mday = CMOS_READ(DS_REG_DATE); + tm.tm_mon = CMOS_READ(DS_REG_MONTH) - 1; + tm.tm_year = CMOS_READ(DS_REG_YEAR); + if(tm.tm_year < 50)tm.tm_year += 100; + + CMOS_WRITE(ctrlbsave & ~DS_CTLB_SET, DS_REG_CTLB); + + tm.tm_isdst = tm.tm_gmtoff = 0; + t = gmmktime(&tm); + } else { + t = 957960000; /* Wed May 10 14:00:00 2000 :-) */ + } + + return(t); +} + +/* + * Set the current time if a TOD clock is present + */ +void +tgt_settime(time_t t) +{ + struct tm *tm; + int ctrlbsave; + + + if(!clk_invalid) { + tm = gmtime(&t); + ctrlbsave = CMOS_READ(DS_REG_CTLB); + CMOS_WRITE(ctrlbsave | DS_CTLB_SET, DS_REG_CTLB); + + CMOS_WRITE(tm->tm_year % 100, DS_REG_YEAR); + CMOS_WRITE(tm->tm_mon + 1, DS_REG_MONTH); + CMOS_WRITE(tm->tm_mday, DS_REG_DATE); + CMOS_WRITE(tm->tm_wday, DS_REG_WDAY); + CMOS_WRITE(tm->tm_hour, DS_REG_HOUR); + CMOS_WRITE(tm->tm_min, DS_REG_MIN); + CMOS_WRITE(tm->tm_sec, DS_REG_SEC); + + CMOS_WRITE(ctrlbsave & ~DS_CTLB_SET, DS_REG_CTLB); + } +} + + +/* + * Print out any target specific memory information + */ +void +tgt_memprint() +{ + printf("Primary Instruction cache size %dkb (%d line, %d way)\n", + CpuPrimaryInstCacheSize / 1024, CpuPrimaryInstCacheLSize, CpuNWayCache); + printf("Primary Data cache size %dkb (%d line, %d way)\n", + CpuPrimaryDataCacheSize / 1024, CpuPrimaryDataCacheLSize, CpuNWayCache); + if(CpuSecondaryCacheSize != 0) { + printf("Secondary cache size %dkb\n", CpuSecondaryCacheSize / 1024); + } + if(CpuTertiaryCacheSize != 0) { + printf("Tertiary cache size %dkb\n", CpuTertiaryCacheSize / 1024); + } +} + +void +tgt_machprint() +{ + printf("Copyright 2000-2002, Opsycon AB, Sweden.\n"); + printf("Copyright 2006, Lemote Corp. Ltd., ICT CAS.\n"); + printf("CPU %s @", md_cpuname()); +} + +/* + * Return a suitable address for the client stack. + * Usually top of RAM memory. + */ + +register_t +tgt_clienttos() +{ + return((register_t)(int)PHYS_TO_UNCACHED(memorysize & ~7) - 64); +} + +#ifdef HAVE_FLASH +/* + * Flash programming support code. + */ + +/* + * Table of flash devices on target. See pflash_tgt.h. + */ + +struct fl_map tgt_fl_map_boot8[]={ + TARGET_FLASH_DEVICES_8 +}; + + +struct fl_map * +tgt_flashmap() +{ + return tgt_fl_map_boot8; +} +void +tgt_flashwrite_disable() +{ +} + +int +tgt_flashwrite_enable() +{ + return(1); +} + +void +tgt_flashinfo(void *p, size_t *t) +{ + struct fl_map *map; + + map = fl_find_map(p); + if(map) { + *t = map->fl_map_size; + } + else { + *t = 0; + } +} + +void +tgt_flashprogram(void *p, int size, void *s, int endian) +{ + printf("Programming flash %x:%x into %x\n", s, size, p); +#if 0 + if(fl_erase_device(p, size, TRUE)) { + printf("Erase failed!\n"); + return; + } + if(fl_program_device(p, s, size, TRUE)) { + printf("Programming failed!\n"); + } +#endif + if( fl_program(p, s, size, TRUE) ){ + printf("Programming failed!\n"); + } + + fl_verify_device(p, s, size, TRUE); +} +#endif /* PFLASH */ + +/* update the ec_firmware */ +void tgt_ecprogram(void *s, int size) +{ + ec_update_rom(s, size); + return; +} + +/* + * Network stuff. + */ +void +tgt_netinit() +{ +} + +int +tgt_ethaddr(char *p) +{ + bcopy((void *)&hwethadr, p, 6); + return(0); +} + +void +tgt_netreset() +{ +} + +extern unsigned char *get_ecver(void); + +/*************************************************************************/ +/* + * Target dependent Non volatile memory support code + * ================================================= + * + * + * On this target a part of the boot flash memory is used to store + * environment. See EV64260.h for mapping details. (offset and size). + */ + +/* + * Read in environment from NV-ram and set. + */ +void +tgt_mapenv(int (*func) __P((char *, char *))) +{ + char *ep; + char env[512]; + char *nvram; + int i; + + /* + * Check integrity of the NVRAM env area. If not in order + * initialize it to empty. + */ + printf("in envinit\n"); +#ifdef NVRAM_IN_FLASH + nvram = (char *)(tgt_flashmap()->fl_map_base + FLASH_OFFS); + printf("nvram %x\n", nvram); + if(fl_devident((void *)(tgt_flashmap()->fl_map_base), NULL) == 0 || + cksum(nvram + NVRAM_OFFS, NVRAM_SIZE, 0) != 0) { +#else + nvram = (char *)malloc(512); + nvram_get(nvram); + if(cksum(nvram, NVRAM_SIZE, 0) != 0) { +#endif + printf("NVRAM is invalid!\n"); + nvram_invalid = 1; + } else { + nvram += NVRAM_OFFS; + ep = nvram+2;; + + while(*ep != 0) { + char *val = 0, *p = env; + i = 0; + while((*p++ = *ep++) && (ep <= nvram + NVRAM_SIZE - 1) && i++ < 255) { + if((*(p - 1) == '=') && (val == NULL)) { + *(p - 1) = '\0'; + val = p; + } + } + if(ep <= nvram + NVRAM_SIZE - 1 && i < 255) { + (*func)(env, val); + } + else { + nvram_invalid = 2; + break; + } + } + } + + printf("NVRAM@%x\n",(u_int32_t)nvram); + + /* + * Ethernet address for Galileo ethernet is stored in the last + * six bytes of nvram storage. Set environment to it. + */ + /*bcopy(&nvram[ETHER_OFFS], hwethadr, 6); + sprintf(env, "%02x:%02x:%02x:%02x:%02x:%02x", hwethadr[0], hwethadr[1], + hwethadr[2], hwethadr[3], hwethadr[4], hwethadr[5]); + (*func)("ethaddr", env);*/ + +#ifndef NVRAM_IN_FLASH + free(nvram); +#endif + +#ifdef no_thank_you + (*func)("vxWorks", env); +#endif + + + sprintf(env, "%d", memorysize / (1024 * 1024)); + (*func)("memsize", env); + + sprintf(env, "%d", memorysize_high / (1024 * 1024)); + (*func)("highmemsize", env); + + sprintf(env, "%d", md_pipefreq); + (*func)("cpuclock", env); + + sprintf(env, "%d", md_cpufreq); + (*func)("busclock", env); + + (*func)("systype", SYSTYPE); + + /* get ec version */ + ec_version = get_ecver(); + sprintf(env, "%s", ec_version); + (*func)("ECVersion", env); +} + +int +tgt_unsetenv(char *name) +{ + char *ep, *np, *sp; + char *nvram; + char *nvrambuf; + char *nvramsecbuf; + int status; + + if(nvram_invalid) { + return(0); + } + + /* Use first defined flash device (we probably have only one) */ +#ifdef NVRAM_IN_FLASH + nvram = (char *)((tgt_flashmap())->fl_map_base + FLASH_OFFS); + + /* Map. Deal with an entire sector even if we only use part of it */ + nvram += NVRAM_OFFS & ~(NVRAM_SECSIZE - 1); + nvramsecbuf = (char *)malloc(NVRAM_SECSIZE); + if(nvramsecbuf == 0) { + printf("Warning! Unable to malloc nvrambuffer!\n"); + return(-1); + } + memcpy(nvramsecbuf, nvram, NVRAM_SECSIZE); + nvrambuf = nvramsecbuf + (NVRAM_OFFS & (NVRAM_SECSIZE - 1)); +#else + nvramsecbuf = nvrambuf = nvram = (char *)malloc(512); + nvram_get(nvram); +#endif + + ep = nvrambuf + 2; + + status = 0; + while((*ep != '\0') && (ep <= nvrambuf + NVRAM_SIZE)) { + np = name; + sp = ep; + + while((*ep == *np) && (*ep != '=') && (*np != '\0')) { + ep++; + np++; + } + if((*np == '\0') && ((*ep == '\0') || (*ep == '='))) { + while(*ep++); + while(ep <= nvrambuf + NVRAM_SIZE) { + *sp++ = *ep++; + } + if(nvrambuf[2] == '\0') { + nvrambuf[3] = '\0'; + } + cksum(nvrambuf, NVRAM_SIZE, 1); +#ifdef NVRAM_IN_FLASH +#if 0 + if(fl_erase_device(nvram, NVRAM_SECSIZE, TRUE)) { + status = -1; + break; + } + + if(fl_program_device(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE)) { + status = -1; + break; + } +#endif + fl_program(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE); +#else + nvram_put(nvram); +#endif + status = 1; + break; + } else if(*ep != '\0') { + while(*ep++ != '\0'); + } + } + + free(nvramsecbuf); + return(status); +} + +int +tgt_setenv(char *name, char *value) +{ + char *ep; + int envlen; + char *nvrambuf; + char *nvramsecbuf; +#ifdef NVRAM_IN_FLASH + char *nvram; +#endif + + /* Non permanent vars. */ + if(strcmp(EXPERT, name) == 0) { + return(1); + } + + /* Calculate total env mem size requiered */ + envlen = strlen(name); + if(envlen == 0) { + return(0); + } + if(value != NULL) { + envlen += strlen(value); + } + envlen += 2; /* '=' + null byte */ + if(envlen > 255) { + return(0); /* Are you crazy!? */ + } + + /* Use first defined flash device (we probably have only one) */ +#ifdef NVRAM_IN_FLASH + nvram = (char *)((tgt_flashmap())->fl_map_base + FLASH_OFFS); + /* Deal with an entire sector even if we only use part of it */ + nvram += NVRAM_OFFS & ~(NVRAM_SECSIZE - 1); +#endif + + /* If NVRAM is found to be uninitialized, reinit it. */ + if(nvram_invalid) { + nvramsecbuf = (char *)malloc(NVRAM_SECSIZE); + if(nvramsecbuf == 0) { + printf("Warning! Unable to malloc nvrambuffer!\n"); + return(-1); + } +#ifdef NVRAM_IN_FLASH + memcpy(nvramsecbuf, nvram, NVRAM_SECSIZE); +#endif + nvrambuf = nvramsecbuf + (NVRAM_OFFS & (NVRAM_SECSIZE - 1)); + memset(nvrambuf, -1, NVRAM_SIZE); + nvrambuf[2] = '\0'; + nvrambuf[3] = '\0'; + cksum((void *)nvrambuf, NVRAM_SIZE, 1); + printf("Warning! NVRAM checksum fail. Reset!\n"); +#ifdef NVRAM_IN_FLASH +#if 0 + if(fl_erase_device(nvram, NVRAM_SECSIZE, TRUE)) { + printf("Error! Nvram erase failed!\n"); + free(nvramsecbuf); + return(-1); + } + if(fl_program_device(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE)) { + printf("Error! Nvram init failed!\n"); + free(nvramsecbuf); + return(-1); + } +#endif + fl_program(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE); +#else + nvram_put(nvramsecbuf); +#endif + nvram_invalid = 0; + free(nvramsecbuf); + } + + /* Remove any current setting */ + tgt_unsetenv(name); + + /* Find end of evironment strings */ + nvramsecbuf = (char *)malloc(NVRAM_SECSIZE); + if(nvramsecbuf == 0) { + printf("Warning! Unable to malloc nvrambuffer!\n"); + return(-1); + } +#ifndef NVRAM_IN_FLASH + nvram_get(nvramsecbuf); +#else + memcpy(nvramsecbuf, nvram, NVRAM_SECSIZE); +#endif + nvrambuf = nvramsecbuf + (NVRAM_OFFS & (NVRAM_SECSIZE - 1)); + /* Etheraddr is special case to save space */ + if (strcmp("ethaddr", name) == 0) { + char *s = value; + int i; + int32_t v; + for(i = 0; i < 6; i++) { + gethex(&v, s, 2); + hwethadr[i] = v; + s += 3; /* Don't get to fancy here :-) */ + } + } else { + ep = nvrambuf+2; + if(*ep != '\0') { + do { + while(*ep++ != '\0'); + } while(*ep++ != '\0'); + ep--; + } + if(((int)ep + NVRAM_SIZE - (int)ep) < (envlen + 1)) { + free(nvramsecbuf); + return(0); /* Bummer! */ + } + + /* + * Special case heaptop must always be first since it + * can change how memory allocation works. + */ + if(strcmp("heaptop", name) == 0) { + + bcopy(nvrambuf+2, nvrambuf+2 + envlen, + ep - nvrambuf+1); + + ep = nvrambuf+2; + while(*name != '\0') { + *ep++ = *name++; + } + if(value != NULL) { + *ep++ = '='; + while((*ep++ = *value++) != '\0'); + } + else { + *ep++ = '\0'; + } + } + else { + while(*name != '\0') { + *ep++ = *name++; + } + if(value != NULL) { + *ep++ = '='; + while((*ep++ = *value++) != '\0'); + } + else { + *ep++ = '\0'; + } + *ep++ = '\0'; /* End of env strings */ + } + } + + bcopy(hwethadr, &nvramsecbuf[ETHER_OFFS], 6); + cksum(nvrambuf, NVRAM_SIZE, 1); +#ifdef NVRAM_IN_FLASH +#if 0 + if(fl_erase_device(nvram, NVRAM_SECSIZE, TRUE)) { + printf("Error! Nvram erase failed!\n"); + free(nvramsecbuf); + return(0); + } + if(fl_program_device(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE)) { + printf("Error! Nvram program failed!\n"); + free(nvramsecbuf); + return(0); + } +#endif + fl_program(nvram, nvramsecbuf, NVRAM_SECSIZE, TRUE); +#else + nvram_put(nvramsecbuf); +#endif + free(nvramsecbuf); + return(1); +} + + +/* + * Calculate checksum. If 'set' checksum is calculated and set. + */ +static int +cksum(void *p, size_t s, int set) +{ + u_int16_t sum = 0; + u_int8_t *sp = p; + int sz = s / 2; + + if(set) { + *sp = 0; /* Clear checksum */ + *(sp+1) = 0; /* Clear checksum */ + } + while(sz--) { + sum += (*sp++) << 8; + sum += *sp++; + } + if(set) { + sum = -sum; + *(u_int8_t *)p = sum >> 8; + *((u_int8_t *)p+1) = sum; + } + return(sum); +} + +#ifndef NVRAM_IN_FLASH + +/* + * Read and write data into non volatile memory in clock chip. + */ +void +nvram_get(char *buffer) +{ + int i; + for(i = 0; i < 114; i++) { + linux_outb(i + RTC_NVRAM_BASE, RTC_INDEX_REG); /* Address */ + buffer[i] = linux_inb(RTC_DATA_REG); + } +} + +void +nvram_put(char *buffer) +{ + int i; + for(i = 0; i < 114; i++) { + linux_outb(i+RTC_NVRAM_BASE, RTC_INDEX_REG); /* Address */ + linux_outb(buffer[i],RTC_DATA_REG); + } +} + +#endif + +/* + * Simple display function to display a 4 char string or code. + * Called during startup to display progress on any feasible + * display before any serial port have been initialized. + */ +void +tgt_display(char *msg, int x) +{ + /* Have simple serial port driver */ + tgt_putchar(msg[0]); + tgt_putchar(msg[1]); + tgt_putchar(msg[2]); + tgt_putchar(msg[3]); + tgt_putchar('\r'); + tgt_putchar('\n'); +} + +static int putDebugChar(unsigned char byte) +{ + while ((linux_inb(0x3fd) & 0x20) == 0); + linux_outb(byte,0x3f8); + return 1; +} + +static char buf[1024]; +void prom_printf(char *fmt, ...) +{ + va_list args; + int l; + char *p, *buf_end; + + int putDebugChar(unsigned char); + + va_start(args, fmt); + l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */ + va_end(args); + + buf_end = buf + l; + + for (p = buf; p < buf_end; p++) { + /* Crude cr/nl handling is better than none */ + if(*p == '\n')putDebugChar('\r'); + putDebugChar(*p); + } +} + +void +clrhndlrs() +{ +} + +int +tgt_getmachtype() +{ + return(md_cputype()); +} + +/* + * Create stubs if network is not compiled in + */ +#ifdef INET +void +tgt_netpoll() +{ + splx(splhigh()); +} + +#else +extern void longjmp(label_t *, int); +void gsignal(label_t *jb, int sig); +void +gsignal(label_t *jb, int sig) +{ + if(jb != NULL) { + longjmp(jb, 1); + } +}; + +int netopen (const char *, int); +int netread (int, void *, int); +int netwrite (int, const void *, int); +long netlseek (int, long, int); +int netioctl (int, int, void *); +int netclose (int); +int netopen(const char *p, int i) { return -1;} +int netread(int i, void *p, int j) { return -1;} +int netwrite(int i, const void *p, int j) { return -1;} +int netclose(int i) { return -1;} +long int netlseek(int i, long j, int k) { return -1;} +int netioctl(int j, int i, void *p) { return -1;} +void tgt_netpoll() {}; + +#endif /*INET*/ + +#define SPINSZ 0x800000 +#define DEFTESTS 7 +#define MOD_SZ 20 +#define BAILOUT if (bail) goto skip_test; +#define BAILR if (bail) return; + +/* memspeed operations */ +#define MS_BCOPY 1 +#define MS_COPY 2 +#define MS_WRITE 3 +#define MS_READ 4 diff --git a/Targets/Bonito2F7inch/Bonito/vgarom-card.c b/Targets/Bonito2F7inch/Bonito/vgarom-card.c new file mode 100644 index 00000000..ee751c63 --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/vgarom-card.c @@ -0,0 +1,4097 @@ +char vgarom[]={ +/*00000000:*/0x55,0xaa,0x60,0xe9,0x19,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000010:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x01,0x00,0x00,0x00,0x00,0x49,0x42, +/*00000020:*/0x4d,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000030:*/0x20,0x37,0x36,0x31,0x32,0x39,0x35,0x35,0x32,0x30,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000040:*/0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000050:*/0x32,0x30,0x30,0x31,0x2f,0x31,0x30,0x2f,0x32,0x34,0x20,0x31,0x39,0x3a,0x31,0x39, +/*00000060:*/0x00,0x00,0x00,0x00,0xe9,0x62,0x10,0x00,0xe9,0x0e,0x1c,0x00,0x00,0x00,0x00,0x00, +/*00000070:*/0x47,0xbf,0x8e,0x00,0x02,0x10,0x3a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000080:*/0x0d,0x0a,0x50,0x2f,0x4e,0x20,0x31,0x31,0x33,0x2d,0x37,0x38,0x35,0x30,0x31,0x2d, +/*00000090:*/0x31,0x30,0x37,0x20,0x52,0x56,0x31,0x30,0x30,0x20,0x37,0x38,0x35,0x20,0x48,0x59, +/*000000a0:*/0x55,0x4e,0x44,0x41,0x49,0x20,0x44,0x44,0x52,0x20,0x77,0x69,0x74,0x68,0x20,0x44, +/*000000b0:*/0x4c,0x4c,0x20,0x42,0x49,0x4f,0x53,0x20,0x0d,0x0a,0x00,0x28,0x43,0x29,0x20,0x31, +/*000000c0:*/0x39,0x38,0x38,0x2d,0x32,0x30,0x30,0x31,0x2c,0x20,0x41,0x54,0x49,0x20,0x54,0x65, +/*000000d0:*/0x63,0x68,0x6e,0x6f,0x6c,0x6f,0x67,0x69,0x65,0x73,0x20,0x49,0x6e,0x63,0x2e,0x20, +/*000000e0:*/0x42,0x4b,0x35,0x2e,0x30,0x2e,0x30,0x20,0x56,0x52,0x30,0x30,0x30,0x2e,0x30,0x30, +/*000000f0:*/0x30,0x2e,0x30,0x30,0x36,0x2e,0x30,0x30,0x30,0x2e,0x30,0x30,0x34,0x2e,0x30,0x30, +/*00000100:*/0x31,0x2e,0x30,0x30,0x31,0x2e,0x30,0x30,0x30,0x20,0x79,0x69,0x70,0x70,0x72,0x74, +/*00000110:*/0x38,0x6d,0x2e,0x74,0x73,0x74,0x20,0x76,0x36,0x31,0x31,0x20,0x00,0x52,0x31,0x30, +/*00000120:*/0x30,0x41,0x47,0x50,0x20,0x44,0x47,0x44,0x31,0x55,0x4e,0x00,0x00,0x90,0x58,0x00, +/*00000130:*/0x05,0xa0,0x00,0x00,0x06,0x00,0x58,0x00,0x8f,0x1c,0x48,0x56,0xf1,0x01,0xaf,0x01, +/*00000140:*/0x09,0x01,0x80,0x00,0x1d,0x01,0x40,0x02,0x00,0xc0,0x00,0xa0,0x02,0x10,0x3a,0x01, +/*00000150:*/0x59,0x51,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x6f,0x38,0x66,0x9b,0x0a, +/*00000160:*/0x84,0x06,0x84,0xac,0x09,0x04,0xf7,0x03,0x00,0x00,0x24,0x54,0x56,0x53,0x90,0xac, +/*00000170:*/0x00,0x00,0x0e,0x04,0x00,0x00,0xed,0x02,0xbe,0x03,0x8c,0x75,0x00,0x00,0x54,0x02, +/*00000180:*/0x01,0x04,0x9e,0x03,0x00,0x00,0x00,0x00,0x50,0x43,0x49,0x52,0x02,0x10,0x59,0x51, +/*00000190:*/0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x03,0x60,0x00,0x00,0x06,0x00,0x80,0x00,0x00, +/*000001a0:*/0x41,0x54,0x49,0x20,0x52,0x41,0x44,0x45,0x4f,0x4e,0x20,0x49,0x49,0x49,0x00,0x5c, +/*000001b0:*/0x2a,0xb8,0xce,0xff,0xff,0xff,0xff,0xb7,0x8f,0x00,0x00,0xff,0xff,0xff,0xff,0x00, +/*000001c0:*/0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x5c, +/*000001d0:*/0x2a,0xb8,0xce,0xff,0xff,0xff,0xff,0xb7,0x8f,0x00,0x00,0xff,0xff,0xff,0xff,0x00, +/*000001e0:*/0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00, +/*000001f0:*/0x00,0x30,0x20,0xb0,0xa3,0x33,0x51,0xec,0x00,0x43,0x44,0x00,0x00,0xd0,0x41,0xfd, +/*00000200:*/0xff,0xff,0xff,0x02,0x00,0x00,0x00,0x50,0x20,0x00,0x00,0x00,0x04,0x58,0x20,0x02, +/*00000210:*/0x41,0x60,0xff,0x68,0x41,0xff,0xff,0xfe,0xff,0x00,0x12,0x00,0x00,0x78,0x01,0xff, +/*00000220:*/0x7f,0x1f,0xff,0x7c,0x01,0xff,0xbf,0xcf,0xfe,0x88,0x41,0xff,0xff,0xff,0xff,0x00, +/*00000230:*/0x7c,0x00,0x08,0x00,0x4d,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x5b,0x8c,0x48,0xef, +/*00000240:*/0xfc,0x00,0xff,0x00,0x00,0x48,0x00,0x84,0x42,0x00,0x00,0x00,0x00,0x08,0x00,0x00, +/*00000250:*/0x08,0x00,0x00,0x00,0x40,0x01,0x00,0x2e,0x00,0x2e,0x58,0x41,0x00,0x00,0x00,0xf0, +/*00000260:*/0x00,0x00,0x3a,0x40,0x44,0x01,0x6b,0x35,0x05,0x14,0x4c,0x01,0xf0,0xff,0x0f,0x00, +/*00000270:*/0x48,0x01,0x00,0x00,0xff,0xff,0x54,0x01,0x77,0x77,0x77,0x77,0x8c,0x01,0x66,0x66, +/*00000280:*/0x01,0x00,0x10,0x09,0x04,0x00,0x00,0x00,0x10,0x40,0xfb,0xff,0xff,0xff,0x04,0x00, +/*00000290:*/0x00,0x00,0xa8,0x02,0x1b,0x0a,0x00,0x00,0x64,0x4d,0xff,0xfb,0xff,0xff,0x22,0x02, +/*000002a0:*/0x00,0x00,0x64,0x4d,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x10,0x00,0x48,0xff,0xff, +/*000002b0:*/0xff,0xff,0x00,0x00,0x00,0x40,0x10,0x4d,0xff,0xff,0xff,0xef,0x00,0x00,0x00,0x10, +/*000002c0:*/0xdc,0x44,0xff,0xfe,0xff,0xff,0x00,0x01,0x00,0x00,0x34,0x40,0xff,0xff,0xff,0x73, +/*000002d0:*/0x00,0x00,0x00,0x84,0x74,0x41,0x00,0xff,0xef,0xff,0x00,0x00,0x10,0x00,0x00,0x00, +/*000002e0:*/0x74,0x41,0x00,0xff,0xe1,0xff,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x0d,0xf8,0xff, +/*000002f0:*/0xff,0xff,0x12,0x00,0x00,0x35,0x0a,0x08,0x00,0x00,0x00,0x00,0x2d,0x00,0x00,0x00, +/*00000300:*/0x00,0x82,0x03,0x3c,0x00,0x00,0x00,0x0a,0x0c,0x3f,0x49,0x01,0x0e,0x33,0xfc,0x00, +/*00000310:*/0x04,0x0c,0x33,0xbc,0x00,0x04,0x02,0x03,0xa7,0x00,0x00,0x0f,0x3f,0x05,0x00,0x00, +/*00000320:*/0x10,0x83,0x08,0x83,0x08,0x82,0x4e,0x00,0xfd,0x00,0x82,0x4e,0x00,0xfe,0x00,0x82, +/*00000330:*/0x5f,0x00,0xf4,0x0b,0x82,0x12,0x12,0x00,0x35,0x0a,0x82,0x4f,0x00,0xfe,0x00,0x81, +/*00000340:*/0x82,0x50,0x00,0xfe,0x00,0x82,0x50,0x02,0xfe,0x00,0x81,0x82,0x4f,0x00,0xfd,0x00, +/*00000350:*/0x82,0x50,0x00,0xfd,0x00,0x82,0x50,0x02,0xfd,0x00,0x82,0x82,0x4c,0x00,0xfe,0x00, +/*00000360:*/0x81,0x82,0x4c,0x00,0xfd,0x00,0x82,0x0d,0xff,0xff,0xff,0xff,0x82,0x48,0x00,0x3c, +/*00000370:*/0x00,0x42,0x00,0xff,0x03,0x04,0xc0,0x81,0x03,0x00,0x05,0xf7,0x81,0x03,0x00,0x06, +/*00000380:*/0xc0,0x81,0x03,0x00,0x07,0xf7,0x81,0x03,0x00,0x42,0x00,0xfd,0x00,0x81,0x82,0x42, +/*00000390:*/0x00,0xfe,0x00,0x82,0x48,0x00,0x3c,0x03,0x82,0x41,0x00,0xff,0x10,0x00,0x54,0x01, +/*000003a0:*/0x3f,0x30,0x54,0x02,0x1f,0x00,0x41,0x01,0xff,0x80,0x0d,0x07,0x00,0x00,0x00,0x82, +/*000003b0:*/0x2d,0xc0,0xf8,0x00,0x00,0x48,0x00,0xff,0xc0,0x82,0x00,0x2e,0x00,0x00,0x40,0x2e, +/*000003c0:*/0x40,0xad,0x20,0x2d,0x20,0xa9,0x10,0x29,0x10,0xa5,0x10,0x25,0x20,0x8d,0x10,0x0d, +/*000003d0:*/0x10,0x89,0x08,0x29,0x00,0x6f,0x01,0x00,0x00,0x20,0x80,0x00,0x20,0x0f,0x00,0x01, +/*000003e0:*/0x20,0x80,0x01,0x20,0x0f,0x00,0x00,0x20,0x80,0x00,0x20,0x0f,0x00,0x32,0x00,0x80, +/*000003f0:*/0x32,0x00,0x0f,0x10,0x32,0x00,0xff,0x24,0x41,0x54,0x49,0x02,0x0a,0x0f,0x33,0x00, +/*00000400:*/0x00,0x11,0x12,0x00,0x23,0x01,0x32,0x00,0x00,0x02,0x04,0x9d,0xac,0x00,0x02,0x11, +/*00000410:*/0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66, +/*00000420:*/0x60,0x8b,0xd8,0x2e,0x83,0x3e,0x46,0x01,0x00,0x75,0x2e,0x2e,0x89,0x1e,0x46,0x01, +/*00000430:*/0x2e,0x8c,0x0e,0x48,0x01,0xb8,0x09,0xb1,0xbf,0x14,0x00,0xcd,0x1a,0x83,0xe1,0xfc, +/*00000440:*/0x75,0x0b,0xb8,0x0c,0xb1,0xbf,0x14,0x00,0xb9,0x00,0xf0,0xcd,0x1a,0x2e,0x89,0x0e, +/*00000450:*/0x4a,0x01,0x2e,0x39,0x0e,0x4a,0x01,0x75,0xe9,0x2e,0x8b,0x16,0x4a,0x01,0x8c,0xc8, +/*00000460:*/0xb2,0x14,0xef,0x2e,0xa1,0x46,0x01,0xb2,0x16,0xef,0x66,0x61,0x1e,0x06,0x66,0x60, +/*00000470:*/0xbb,0xf1,0x01,0xe8,0x5a,0x61,0xe8,0x2a,0x01,0xe8,0x3d,0x00,0xe8,0x22,0x00,0xe8, +/*00000480:*/0x9a,0x01,0x60,0xb8,0x09,0xb1,0x33,0xdb,0x33,0xff,0xcd,0x1a,0x81,0xf9,0x86,0x80, +/*00000490:*/0x74,0x09,0x9c,0xfa,0xbb,0xe0,0x02,0xe8,0x36,0x61,0x9d,0x61,0x66,0x61,0x07,0x1f, +/*000004a0:*/0xcb,0xe8,0x48,0x73,0x0e,0x07,0xb8,0x01,0x13,0xbb,0x07,0x00,0x8b,0x16,0x50,0x04, +/*000004b0:*/0xbd,0x80,0x00,0xb9,0x3b,0x00,0xcd,0x6d,0xc3,0x56,0xbe,0xed,0x02,0xe8,0x19,0x65, +/*000004c0:*/0x5e,0xe8,0x02,0x61,0xe8,0xce,0x65,0x66,0x2e,0x81,0x3e,0xe8,0xb8,0x31,0x49,0x4e, +/*000004d0:*/0x49,0x75,0x03,0x90,0x90,0x90,0x2e,0xc7,0x06,0xd3,0x04,0x90,0x90,0x2e,0xc6,0x06, +/*000004e0:*/0xd5,0x04,0x90,0x66,0x2e,0x81,0x3e,0xe8,0xb8,0x31,0x49,0x4e,0x49,0x75,0x03,0x90, +/*000004f0:*/0x90,0x90,0x2e,0xc7,0x06,0xef,0x04,0x90,0x90,0x2e,0xc6,0x06,0xf1,0x04,0x90,0xe8, +/*00000500:*/0xa7,0x8d,0x66,0x2e,0x81,0x3e,0xe8,0xb8,0x31,0x49,0x4e,0x49,0x75,0x03,0x90,0x90, +/*00000510:*/0x90,0x2e,0xc7,0x06,0x0e,0x05,0x90,0x90,0x2e,0xc6,0x06,0x10,0x05,0x90,0x56,0xbe, +/*00000520:*/0x9e,0x03,0xe8,0xb4,0x64,0x5e,0xe8,0xf0,0x8e,0xe8,0x34,0x00,0xe8,0x0d,0x00,0xe8, +/*00000530:*/0xa4,0x8c,0xe8,0x7b,0x8c,0xe8,0x69,0x09,0xe8,0x6a,0x4a,0xc3,0xe8,0xad,0x72,0xe8, +/*00000540:*/0xe8,0x1b,0xa0,0x89,0x04,0x0c,0x11,0x24,0x17,0xa2,0x89,0x04,0xb0,0x01,0xe8,0x00, +/*00000550:*/0x42,0xa0,0x89,0x04,0x50,0xe8,0xae,0x42,0x58,0xa2,0x89,0x04,0xe8,0xef,0x42,0xc3, +/*00000560:*/0xe8,0x42,0x51,0xb2,0x20,0xed,0xa9,0x3f,0x0b,0x75,0x03,0x0c,0x02,0xee,0x32,0xe4, +/*00000570:*/0xe8,0x13,0x5c,0xa8,0x03,0x74,0x03,0x80,0xcc,0x20,0xe8,0x11,0x5c,0xa8,0x03,0x74, +/*00000580:*/0x03,0x80,0xcc,0x02,0xa8,0x08,0x74,0x05,0x80,0xcc,0x08,0xeb,0x12,0xe8,0xfe,0x5b, +/*00000590:*/0xa8,0x30,0x74,0x0b,0x80,0xcc,0x04,0xf6,0xc4,0xaf,0x75,0x03,0x80,0xcc,0x02,0xe8, +/*000005a0:*/0x6f,0x5c,0xc3,0x2e,0x83,0x3e,0x5a,0x56,0x00,0x75,0x05,0x2e,0x8c,0x0e,0x58,0x56, +/*000005b0:*/0xba,0xc2,0x03,0xb0,0x05,0xee,0xb2,0xda,0xec,0xb2,0xba,0xec,0xb2,0xc0,0x32,0xc0, +/*000005c0:*/0xee,0xb2,0xc4,0xb8,0x01,0x20,0xef,0xe8,0x22,0x72,0x9c,0xfa,0xb8,0x65,0xf0,0xa3, +/*000005d0:*/0x08,0x01,0xb8,0x00,0xf0,0xa3,0x0a,0x01,0xc7,0x06,0x7c,0x00,0x82,0x2a,0x8c,0x0e, +/*000005e0:*/0x7e,0x00,0xc7,0x06,0x0c,0x01,0x95,0x2e,0x8c,0x0e,0x0e,0x01,0xc7,0x06,0xb4,0x01, +/*000005f0:*/0x8e,0x1c,0x8c,0x0e,0xb6,0x01,0xc7,0x06,0x40,0x00,0x8e,0x1c,0x8c,0x0e,0x42,0x00, +/*00000600:*/0xc7,0x06,0xa8,0x04,0x02,0x1d,0x8c,0x0e,0xaa,0x04,0x2e,0x8e,0x1e,0x58,0x56,0x8c, +/*00000610:*/0xc8,0xa3,0x04,0x1d,0xa3,0x14,0x1d,0xa3,0x26,0x1d,0x9d,0xc3,0x1e,0x56,0x2e,0x8e, +/*00000620:*/0x1e,0x58,0x56,0xb9,0x00,0x80,0xfc,0xc6,0x06,0x21,0x00,0x00,0x33,0xf6,0x32,0xe4, +/*00000630:*/0xac,0x02,0xe0,0xe2,0xfb,0xf6,0xd4,0xfe,0xc4,0x88,0x26,0x21,0x00,0x8a,0x2e,0x02, +/*00000640:*/0x00,0x80,0xed,0x40,0xd0,0xe5,0x32,0xc9,0x32,0xe4,0xac,0x02,0xe0,0xe2,0xfb,0xf6, +/*00000650:*/0xd4,0xfe,0xc4,0xbe,0xb8,0xb8,0x88,0x64,0xff,0x5e,0x1f,0xc3,0xd6,0x09,0x10,0x0b, +/*00000660:*/0x00,0x00,0x00,0x00,0xd6,0x09,0x10,0x0b,0x4e,0x0c,0x10,0x0e,0x68,0x10,0x8a,0x11, +/*00000670:*/0x56,0x13,0x88,0x13,0x00,0x00,0xf8,0x2a,0x38,0x31,0xbc,0x34,0x00,0x00,0x40,0x1f, +/*00000680:*/0x4c,0x1d,0x64,0x19,0x09,0x32,0x03,0x03,0x64,0x06,0x5c,0x06,0xdc,0x37,0xd8,0x40, +/*00000690:*/0x03,0x0c,0x8c,0x0a,0x3c,0x00,0xe0,0x2e,0x00,0x00,0xb8,0x88,0x00,0x00,0x8c,0x0a, +/*000006a0:*/0x0c,0x00,0x20,0x4e,0x00,0x00,0x40,0x9c,0x00,0x00,0x8c,0x0a,0x0c,0x00,0x20,0x4e, +/*000006b0:*/0x00,0x00,0x40,0x9c,0x00,0x00,0x83,0xec,0x3e,0x8b,0xec,0xe8,0x40,0x00,0x8a,0x46, +/*000006c0:*/0x02,0x0a,0xc0,0x75,0x04,0xb4,0x01,0xeb,0x31,0xe8,0x66,0x5a,0xe8,0xb3,0x59,0xa8, +/*000006d0:*/0x01,0x75,0x03,0xe8,0xf4,0x8b,0xe8,0x65,0x5b,0xa8,0x88,0x74,0x08,0xe8,0x71,0x69, +/*000006e0:*/0xe8,0x86,0xab,0xeb,0x10,0xa8,0x04,0x74,0x05,0xe8,0x65,0x69,0xeb,0x07,0xa8,0x22, +/*000006f0:*/0x74,0x03,0xe8,0x5c,0x69,0xe8,0xd6,0x59,0x32,0xe4,0x83,0xc4,0x3e,0xc3,0x53,0xe8, +/*00000700:*/0xc7,0x07,0x88,0x4e,0x29,0x80,0xe1,0x0f,0x88,0x4e,0x3d,0x8a,0xc8,0xe8,0x10,0x5b, +/*00000710:*/0x32,0xe4,0xa8,0x02,0x74,0x11,0xe8,0x2f,0x59,0x74,0x05,0x80,0xcc,0x02,0xeb,0x07, +/*00000720:*/0x3c,0x02,0x75,0x03,0xe9,0xa7,0x00,0xa8,0x20,0x74,0x11,0xe8,0x29,0x59,0x74,0x05, +/*00000730:*/0x80,0xcc,0x20,0xeb,0x07,0x3c,0x20,0x75,0x03,0xe9,0x92,0x00,0xa8,0x08,0x74,0x13, +/*00000740:*/0xe8,0x7c,0xaa,0x74,0x0a,0xf6,0xc4,0x01,0x75,0x09,0x80,0xcc,0x08,0xeb,0x04,0x3c, +/*00000750:*/0x08,0x74,0x7b,0x3c,0x80,0x74,0x77,0xa8,0x04,0x74,0x18,0xe8,0x2e,0x99,0x74,0x0f, +/*00000760:*/0xf6,0xc4,0x01,0x75,0x0e,0xf6,0xc4,0x08,0x75,0x09,0x80,0xcc,0x04,0xeb,0x04,0x3c, +/*00000770:*/0x04,0x74,0x5b,0x80,0xfc,0x00,0x74,0x56,0x88,0x66,0x3b,0x51,0xe8,0x5d,0x00,0x59, +/*00000780:*/0x8a,0x46,0x02,0x0a,0xc0,0x75,0x4d,0x8a,0x46,0x3b,0x24,0x0f,0xa8,0x01,0x75,0x3e, +/*00000790:*/0x3c,0x0e,0x74,0x1e,0x3c,0x2e,0x74,0x1a,0x3c,0x2c,0x74,0x1e,0x3c,0x0c,0x74,0x16, +/*000007a0:*/0x3c,0x0a,0x74,0x20,0x3c,0x28,0x74,0x21,0x3c,0x22,0x74,0x13,0x3c,0x06,0x74,0x14, +/*000007b0:*/0xeb,0x1c,0xb0,0x0a,0xeb,0x86,0xb0,0x08,0xeb,0x82,0xb0,0x28,0xe9,0x7d,0xff,0xb0, +/*000007c0:*/0x22,0xe9,0x63,0xff,0xb0,0x02,0xe9,0x49,0xff,0xb0,0x20,0xe9,0x59,0xff,0xc6,0x46, +/*000007d0:*/0x02,0x00,0xeb,0x06,0x8a,0x66,0x3b,0xe8,0x51,0x5a,0x5b,0xc3,0xe8,0x23,0x00,0x80, +/*000007e0:*/0x7e,0x02,0x00,0x74,0x1c,0xc6,0x46,0x3a,0x00,0xc7,0x46,0x2e,0x00,0x00,0x66,0xc7, +/*000007f0:*/0x46,0x36,0x00,0x00,0x00,0x00,0x66,0xc7,0x46,0x32,0x00,0x00,0x00,0x00,0xe8,0x83, +/*00000800:*/0x5d,0xc3,0xe8,0xf5,0x00,0x80,0xfd,0x13,0x77,0x06,0x80,0xfd,0x12,0x74,0x01,0xc3, +/*00000810:*/0x88,0x6e,0x3c,0x80,0xfd,0xe5,0x75,0x02,0xb5,0x6a,0x06,0x1e,0x60,0x8b,0xc1,0x80, +/*00000820:*/0xfc,0x81,0x0f,0x84,0xb3,0x00,0x80,0xfc,0x82,0x74,0x7f,0xbb,0xc2,0x01,0xb9,0x0f, +/*00000830:*/0x00,0xe8,0x7d,0x01,0x74,0x06,0xbb,0x96,0x00,0xb9,0x0f,0x00,0x89,0x5e,0x22,0x89, +/*00000840:*/0x4e,0x20,0xb9,0x00,0x00,0x50,0x33,0xdb,0x03,0xd9,0xe8,0x39,0x01,0x58,0x38,0xe3, +/*00000850:*/0x75,0x19,0xe8,0xb7,0x00,0xc6,0x46,0x02,0x00,0x50,0xbb,0x01,0x00,0x03,0xd9,0xe8, +/*00000860:*/0x24,0x01,0x58,0x8a,0xd0,0x22,0xd3,0x38,0xda,0x74,0x2b,0x03,0x4e,0x20,0x3b,0x4e, +/*00000870:*/0x22,0x72,0xd2,0x8b,0x4e,0x12,0x89,0x4e,0x22,0x80,0x7e,0x02,0x00,0x74,0x13,0xf6, +/*00000880:*/0x46,0x3b,0x88,0x74,0x0d,0x80,0x7e,0x3c,0xe5,0x75,0x04,0xc6,0x46,0x07,0x31,0xe8, +/*00000890:*/0x07,0xac,0x61,0x1f,0x07,0xc3,0xe8,0x73,0x00,0xe8,0x30,0x01,0x73,0xd5,0x32,0xff, +/*000008a0:*/0x88,0x7e,0x02,0x80,0xfc,0x81,0x74,0xcb,0xeb,0xc1,0x52,0x53,0x66,0x5f,0x8b,0xdd, +/*000008b0:*/0x16,0x07,0xe8,0xf0,0x4d,0x66,0x81,0xcf,0x00,0x00,0x00,0x80,0xb9,0x08,0x00,0xb2, +/*000008c0:*/0x00,0x66,0x8b,0xc7,0x66,0xef,0xb2,0x04,0x66,0xed,0x66,0x26,0x89,0x07,0x83,0xc3, +/*000008d0:*/0x04,0x66,0x83,0xc7,0x04,0xe2,0xe8,0x8b,0xdd,0x8b,0xfd,0x8b,0xf3,0x06,0x1e,0x06, +/*000008e0:*/0x1f,0x16,0x07,0xb9,0x0f,0x00,0xf3,0xa5,0x1f,0x07,0xe8,0x72,0x00,0xe8,0xdc,0x00, +/*000008f0:*/0x73,0x81,0x32,0xff,0x88,0x7e,0x02,0xe9,0x79,0xff,0x06,0x51,0x57,0x16,0x07,0x8b, +/*00000900:*/0xfd,0xb9,0x3b,0x00,0x33,0xc0,0xf3,0xaa,0x5f,0x59,0x07,0xc3,0x53,0x50,0x55,0x51, +/*00000910:*/0x8b,0xd9,0x8a,0x6e,0x20,0xe8,0x93,0x00,0x89,0x46,0x00,0x83,0xc5,0x02,0x43,0xfe, +/*00000920:*/0xcd,0x75,0xf2,0x59,0x5d,0x8a,0x66,0x3c,0x80,0xfc,0xe5,0x75,0x2c,0x88,0x66,0x00, +/*00000930:*/0xd1,0x6e,0x12,0x80,0x4e,0x04,0x01,0x8b,0x46,0x06,0xd0,0xe8,0xd0,0xec,0x89,0x46, +/*00000940:*/0x06,0x8b,0x46,0x08,0xfe,0xc0,0xd0,0xe8,0xfe,0xc8,0x8a,0xdc,0x80,0xe3,0x1f,0xd0, +/*00000950:*/0xeb,0x80,0xe4,0x20,0x0a,0xe3,0x89,0x46,0x08,0xe8,0x03,0x00,0x58,0x5b,0xc3,0x8a, +/*00000960:*/0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x04,0x80,0xe4,0x03,0x40,0xc1,0xe0,0x03,0x89, +/*00000970:*/0x46,0x24,0x8b,0x46,0x0c,0xf6,0x46,0x04,0x01,0x74,0x02,0xd1,0xe8,0x40,0x89,0x46, +/*00000980:*/0x26,0xc6,0x46,0x28,0x01,0xc3,0xe8,0x28,0x00,0x74,0x16,0x52,0x2e,0x8a,0x26,0x31, +/*00000990:*/0x01,0x80,0xc4,0x10,0xb0,0x01,0x2e,0x8b,0x16,0x46,0x01,0xcd,0x10,0x8b,0xc3,0x5a, +/*000009a0:*/0xc3,0xd1,0xe3,0x2e,0x8b,0x9f,0x9b,0x0a,0x8b,0xc3,0xc3,0x53,0xe8,0xd7,0xff,0x5b, +/*000009b0:*/0xc3,0x50,0x52,0x2e,0xa1,0x5a,0x56,0x0b,0xc0,0x74,0x06,0x32,0xc0,0xa8,0x01,0xeb, +/*000009c0:*/0x08,0xe8,0xe1,0x4c,0xb2,0x10,0xec,0xa8,0x20,0x5a,0x58,0xc3,0x1e,0x60,0xb5,0x06, +/*000009d0:*/0xe8,0xd2,0x4c,0xb2,0x10,0xec,0xa8,0x40,0x0f,0x85,0x9d,0x00,0x8b,0x46,0x12,0xe8, +/*000009e0:*/0xcb,0x68,0x8b,0xd0,0xe8,0x66,0x68,0xc1,0xe8,0x03,0x8a,0xd8,0x8a,0x46,0x07,0x8a, +/*000009f0:*/0x66,0x11,0xc0,0xec,0x04,0x40,0x8b,0xf0,0x0e,0x1f,0xbf,0x38,0x66,0x83,0x3d,0x00, +/*00000a00:*/0x75,0x05,0x83,0xef,0x07,0xeb,0x09,0x3b,0x35,0x76,0x05,0x83,0xc7,0x07,0xeb,0xed, +/*00000a10:*/0xe8,0x81,0x00,0x83,0x3d,0x00,0x74,0x61,0x3b,0x35,0x74,0x05,0x83,0xc7,0x07,0xeb, +/*00000a20:*/0xf2,0xf6,0x46,0x29,0x80,0x74,0x06,0xf6,0x45,0x06,0x80,0x75,0xef,0x84,0x45,0x02, +/*00000a30:*/0x74,0xea,0x3a,0x5d,0x03,0x72,0xe5,0x39,0x55,0x04,0x72,0xe0,0x8a,0x6d,0x06,0x80, +/*00000a40:*/0xe5,0x0f,0x74,0x35,0x66,0x33,0xc0,0xe8,0x03,0x68,0x66,0xc1,0xe0,0x10,0x66,0x33, +/*00000a50:*/0xdb,0x8b,0x5e,0x24,0x66,0x33,0xd2,0x66,0xf7,0xf3,0x66,0x33,0xd2,0x66,0x33,0xdb, +/*00000a60:*/0x8b,0x5e,0x0c,0x43,0x66,0xf7,0xf3,0x83,0xf8,0x04,0x73,0x0d,0x8b,0xd8,0x2e,0x8a, +/*00000a70:*/0x9f,0x8d,0x0a,0x38,0xeb,0x73,0x02,0x8a,0xeb,0x88,0x6e,0x01,0x80,0x7e,0x3d,0x07, +/*00000a80:*/0x7d,0x05,0x3a,0x6e,0x3d,0xeb,0x03,0x80,0xfd,0x04,0x61,0x1f,0xc3,0x01,0x02,0x04, +/*00000a90:*/0x05,0x06,0x10,0x10,0xb0,0x80,0xc3,0x90,0x00,0x01,0x1e,0xe2,0x00,0x80,0x00,0x01, +/*00000aa0:*/0x00,0x31,0x27,0x28,0x86,0xc0,0x01,0x8f,0x01,0x9c,0x01,0x02,0x00,0xeb,0x04,0x00, +/*00000ab0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0x00,0x80,0x00,0x01,0x00,0x31, +/*00000ac0:*/0x27,0x28,0x86,0x07,0x02,0xdf,0x01,0xe8,0x01,0x83,0x00,0xeb,0x04,0x00,0x00,0x00, +/*00000ad0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x00,0x80,0x00,0x00,0x00,0x53,0x3f,0x42, +/*00000ae0:*/0x8a,0xc0,0x01,0x7f,0x01,0x9c,0x01,0x02,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00, +/*00000af0:*/0x00,0x00,0x00,0x00,0x00,0xe6,0x00,0x80,0x00,0x00,0x00,0x63,0x4f,0x51,0x0c,0xc0, +/*00000b00:*/0x01,0x5d,0x01,0x83,0x01,0x82,0x00,0xd6,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000b10:*/0x00,0x00,0x00,0xe1,0x00,0x80,0x00,0x00,0x00,0x63,0x4f,0x51,0x8c,0xc0,0x01,0x8f, +/*00000b20:*/0x01,0x9c,0x01,0x02,0x00,0xd6,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000b30:*/0x00,0x12,0x00,0x90,0x00,0x00,0x00,0x67,0x4f,0x56,0x87,0xfc,0x01,0xdf,0x01,0xe0, +/*00000b40:*/0x01,0x83,0x00,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12, +/*00000b50:*/0x00,0x82,0x00,0x00,0x00,0x68,0x4f,0x51,0x88,0xf3,0x01,0xdf,0x01,0xe0,0x01,0x83, +/*00000b60:*/0x00,0x4e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x81, +/*00000b70:*/0x00,0x00,0x00,0x67,0x4f,0x52,0x85,0x07,0x02,0xdf,0x01,0xe8,0x01,0x83,0x00,0x30, +/*00000b80:*/0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x80,0x00,0x00, +/*00000b90:*/0x00,0x63,0x4f,0x51,0x8c,0x0c,0x02,0xdf,0x01,0xe9,0x01,0x82,0x00,0xd6,0x09,0x00, +/*00000ba0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x90,0x00,0x00,0x00,0x82, +/*00000bb0:*/0x63,0x67,0x08,0x76,0x02,0x57,0x02,0x58,0x02,0x03,0x00,0xf9,0x15,0x00,0x00,0x00, +/*00000bc0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x81,0x00,0x00,0x00,0x83,0x63,0x65, +/*00000bd0:*/0x0a,0x70,0x02,0x57,0x02,0x58,0x02,0x03,0x00,0x56,0x13,0x00,0x00,0x00,0x00,0x00, +/*00000be0:*/0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x82,0x00,0x00,0x00,0x81,0x63,0x6a,0x0f,0x9b, +/*00000bf0:*/0x02,0x57,0x02,0x7c,0x02,0x06,0x00,0x88,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000c00:*/0x00,0x00,0x00,0x6a,0x00,0x84,0x00,0x00,0x00,0x83,0x63,0x68,0x10,0x73,0x02,0x57, +/*00000c10:*/0x02,0x58,0x02,0x04,0x00,0xa0,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000c20:*/0x00,0x6a,0x00,0x88,0x00,0x00,0x00,0x7f,0x63,0x66,0x09,0x70,0x02,0x57,0x02,0x58, +/*00000c30:*/0x02,0x02,0x00,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55, +/*00000c40:*/0x00,0x90,0x00,0x00,0x00,0xab,0x7f,0x85,0x0c,0x27,0x03,0xff,0x02,0x00,0x03,0x03, +/*00000c50:*/0x00,0xea,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x81, +/*00000c60:*/0x00,0x00,0x00,0xa3,0x7f,0x81,0x0c,0x1f,0x03,0xff,0x02,0x00,0x03,0x03,0x00,0xc3, +/*00000c70:*/0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x82,0x00,0x00, +/*00000c80:*/0x00,0xa5,0x7f,0x82,0x91,0x25,0x03,0xff,0x02,0x02,0x03,0x86,0x00,0x4c,0x1d,0x00, +/*00000c90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x84,0x00,0x00,0x00,0xa7, +/*00000ca0:*/0x7f,0x82,0x91,0x25,0x03,0xff,0x02,0x02,0x03,0x86,0x00,0x64,0x19,0x00,0x00,0x00, +/*00000cb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x88,0x00,0x02,0x00,0x9d,0x7f,0x80, +/*00000cc0:*/0x16,0x32,0x03,0xff,0x02,0x00,0x03,0x08,0x00,0x8a,0x11,0x00,0x00,0x00,0x00,0x00, +/*00000cd0:*/0x00,0x00,0x00,0x00,0x00,0x83,0x00,0xa0,0x00,0x00,0x00,0xd7,0x9f,0xa7,0x14,0x2f, +/*00000ce0:*/0x04,0xff,0x03,0x00,0x04,0x03,0x00,0x86,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000cf0:*/0x00,0x00,0x00,0x83,0x00,0x81,0x00,0x00,0x00,0xd2,0x9f,0xa1,0x12,0x29,0x04,0xff, +/*00000d00:*/0x03,0x00,0x04,0x03,0x00,0xbc,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000d10:*/0x00,0x83,0x00,0x82,0x00,0x00,0x00,0xd2,0x9f,0xa9,0x0e,0x29,0x04,0xff,0x03,0x00, +/*00000d20:*/0x04,0x05,0x00,0x38,0x31,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83, +/*00000d30:*/0x00,0x84,0x00,0x00,0x00,0xd2,0x9f,0xa5,0x0e,0x2a,0x04,0xff,0x03,0x00,0x04,0x03, +/*00000d40:*/0x00,0x30,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x88, +/*00000d50:*/0x00,0x02,0x00,0xc7,0x9f,0xa9,0x0a,0x1c,0x04,0xff,0x03,0x09,0x04,0x0a,0x00,0x40, +/*00000d60:*/0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x90,0x00,0x02, +/*00000d70:*/0x00,0xd3,0x9f,0xae,0x0f,0x2c,0x04,0xff,0x03,0x00,0x04,0x0a,0x00,0xc3,0x1e,0x00, +/*00000d80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe5,0x00,0x84,0x00,0x01,0x00,0x41, +/*00000d90:*/0x31,0x33,0x08,0x73,0x02,0x57,0x02,0x58,0x02,0x04,0x00,0xd0,0x07,0x00,0x00,0x00, +/*00000da0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe7,0x00,0x80,0x00,0x00,0x00,0x6f,0x59,0x5d, +/*00000db0:*/0x05,0x4d,0x02,0xdf,0x01,0xea,0x01,0x82,0x00,0x61,0x0c,0x00,0x00,0x00,0x00,0x00, +/*00000dc0:*/0x00,0x00,0x00,0x00,0x00,0xe8,0x00,0x80,0x00,0x00,0x00,0x87,0x69,0x70,0x0f,0x4d, +/*00000dd0:*/0x02,0xdf,0x01,0xe8,0x01,0x03,0x00,0x08,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000de0:*/0x00,0x00,0x00,0xe9,0x00,0x80,0x00,0x00,0x00,0x71,0x59,0x5d,0x05,0xd9,0x02,0x3f, +/*00000df0:*/0x02,0x4a,0x02,0x03,0x00,0x97,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000e00:*/0x00,0xea,0x00,0x80,0x00,0x00,0x00,0x89,0x69,0x70,0x0f,0xd9,0x02,0x3f,0x02,0x4a, +/*00000e10:*/0x02,0x03,0x00,0xe3,0x12,0x10,0x00,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x0a, +/*00000e20:*/0xdb,0x75,0x3c,0x8e,0xc2,0x32,0xe4,0xb5,0x12,0x8a,0xc5,0xab,0xe8,0x9a,0x00,0xab, +/*00000e30:*/0xb5,0x6a,0x8a,0xc5,0xab,0xe8,0x91,0x00,0xab,0xb5,0x55,0x8a,0xc5,0xab,0xe8,0x88, +/*00000e40:*/0x00,0xab,0xb5,0x83,0x8a,0xc5,0xab,0xe8,0x7f,0x00,0xab,0xb5,0x84,0x8a,0xc5,0xab, +/*00000e50:*/0xe8,0x76,0x00,0xab,0x33,0xc0,0xab,0xab,0xf7,0xd0,0xab,0xab,0x33,0xc0,0xc3,0x80, +/*00000e60:*/0xfb,0x01,0x75,0x23,0x8e,0xda,0x8b,0xf7,0xad,0xad,0xe8,0x38,0x48,0xb2,0x18,0xee, +/*00000e70:*/0xad,0xad,0xb2,0x19,0xee,0xad,0xad,0xb2,0x1a,0xee,0xad,0xad,0xb2,0x1b,0xee,0xad, +/*00000e80:*/0xad,0xb2,0x1c,0xee,0x33,0xc0,0xc3,0x80,0xfb,0x02,0x75,0x04,0xe8,0x0f,0x00,0xc3, +/*00000e90:*/0x80,0xfb,0x03,0x75,0x06,0xe8,0x09,0x00,0x32,0xe4,0xc3,0xb4,0x01,0xc3,0xb4,0x01, +/*00000ea0:*/0xc3,0x55,0x83,0xec,0x20,0x8b,0xec,0xc6,0x46,0x02,0x00,0xc6,0x46,0x06,0x04,0xc6, +/*00000eb0:*/0x46,0x0a,0x04,0xc6,0x46,0x0e,0x04,0xc6,0x46,0x12,0x00,0x8c,0xd2,0x8b,0xfd,0xb3, +/*00000ec0:*/0x01,0xe8,0x5b,0xff,0x83,0xc4,0x20,0x5d,0xc3,0xe8,0xd9,0x47,0x80,0xfd,0x62,0x74, +/*00000ed0:*/0x05,0x80,0xfd,0x12,0x75,0x06,0xb2,0x18,0xec,0x0c,0x80,0xc3,0x80,0xfd,0xe5,0x74, +/*00000ee0:*/0x05,0x80,0xfd,0x6a,0x75,0x06,0xb2,0x19,0xec,0x0c,0x80,0xc3,0x80,0xfd,0x55,0x75, +/*00000ef0:*/0x06,0xb2,0x1a,0xec,0x0c,0x80,0xc3,0x80,0xfd,0x83,0x75,0x06,0xb2,0x1b,0xec,0x0c, +/*00000f00:*/0x80,0xc3,0x80,0xfd,0x84,0x75,0x06,0xb2,0x1c,0xec,0x0c,0x80,0xc3,0x8a,0xc5,0x24, +/*00000f10:*/0x80,0xc3,0x50,0x52,0xe8,0x8e,0x47,0xb2,0x5c,0xec,0xa8,0x01,0x75,0xfb,0xec,0xa8, +/*00000f20:*/0x01,0x74,0xfb,0x5a,0x58,0xc3,0x80,0x02,0x90,0x01,0xe1,0x40,0x01,0xc8,0x00,0xe2, +/*00000f30:*/0x40,0x01,0xf0,0x00,0xe3,0x00,0x02,0x80,0x01,0xe4,0x90,0x01,0x2c,0x01,0xe5,0x80, +/*00000f40:*/0x02,0x5e,0x01,0xe6,0xd0,0x02,0xe0,0x01,0xe7,0x50,0x03,0xe0,0x01,0xe8,0xd0,0x02, +/*00000f50:*/0x40,0x02,0xe9,0x80,0x02,0xe0,0x01,0x12,0x20,0x03,0x58,0x02,0x6a,0x00,0x04,0x00, +/*00000f60:*/0x03,0x55,0x00,0x05,0x00,0x04,0x83,0x00,0x00,0x50,0x53,0x51,0x52,0x56,0x57,0xbe, +/*00000f70:*/0x26,0x0f,0x3c,0x02,0x74,0x18,0x3c,0x00,0x74,0x04,0x3c,0x04,0x75,0x5a,0x2e,0x8a, +/*00000f80:*/0x44,0x04,0xaa,0x83,0xc6,0x05,0x2e,0x83,0x3c,0x00,0x75,0xf2,0xeb,0x4a,0xe8,0x14, +/*00000f90:*/0x47,0xb2,0x11,0xec,0x24,0x3f,0x0a,0xc0,0x74,0x3e,0x32,0xd2,0x8a,0xe0,0xd0,0xe8, +/*00000fa0:*/0xfe,0xc2,0xf6,0xc4,0x01,0x74,0xf5,0xfe,0xca,0x8a,0xc2,0xbb,0xce,0x0f,0x32,0xe4, +/*00000fb0:*/0xd0,0xe0,0x03,0xd8,0x2e,0x8b,0x17,0x2e,0x8b,0x1c,0x3b,0xda,0x77,0x05,0x2e,0x8a, +/*00000fc0:*/0x44,0x04,0xaa,0x83,0xc6,0x05,0x2e,0x83,0x3c,0x00,0x75,0xeb,0xeb,0x0a,0x80,0x02, +/*00000fd0:*/0x20,0x03,0x00,0x04,0x00,0x05,0x40,0x06,0x26,0xc6,0x05,0x00,0x5f,0x5e,0x5a,0x59, +/*00000fe0:*/0x5b,0x58,0xc3,0x50,0x32,0xe4,0x26,0x8a,0x47,0x0b,0x40,0x8b,0xd0,0xc1,0xe0,0x03, +/*00000ff0:*/0x8b,0xc8,0xe8,0xd3,0x90,0x75,0x02,0x03,0xca,0xeb,0x0d,0x50,0x32,0xe4,0x26,0x8a, +/*00001000:*/0x47,0x0b,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0x26,0x8a,0x47,0x11,0x8a,0xe0,0x24,0x02, +/*00001010:*/0xd0,0xe8,0x80,0xe4,0x40,0xc0,0xec,0x05,0x0a,0xe0,0x26,0x8a,0x47,0x1c,0x40,0x8b, +/*00001020:*/0xd0,0x58,0xc3,0x66,0x50,0x53,0xbb,0x08,0x02,0xe8,0x85,0x47,0x3c,0xda,0x75,0x0f, +/*00001030:*/0xbb,0x54,0x02,0xe8,0x7b,0x47,0x3c,0xdf,0x75,0x05,0xb0,0xda,0xe8,0xcd,0x46,0xbb, +/*00001040:*/0x84,0x02,0xe8,0xab,0x47,0x8a,0xd0,0xf6,0xc4,0x01,0x74,0x21,0xbb,0x50,0x02,0xe8, +/*00001050:*/0x5f,0x47,0x32,0xe4,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0xf6,0xc2,0x04,0x75,0x00,0xbb, +/*00001060:*/0x54,0x02,0xe8,0x8b,0x47,0x25,0xff,0x07,0x40,0x8b,0xd0,0xeb,0x4b,0xe8,0x91,0x12, +/*00001070:*/0x75,0x2f,0xe8,0xd3,0x67,0xb0,0x01,0xee,0x42,0xec,0x4a,0x32,0xe4,0x40,0xc1,0xe0, +/*00001080:*/0x03,0x8b,0xc8,0xb0,0x07,0xee,0x42,0xec,0x4a,0x8a,0xe0,0x24,0x02,0xd0,0xe8,0x80, +/*00001090:*/0xe4,0x40,0xc0,0xec,0x05,0x0a,0xe0,0xb0,0x12,0xee,0x42,0xec,0x40,0x8b,0xd0,0xeb, +/*000010a0:*/0x17,0xbb,0x00,0x02,0xe8,0x0a,0x47,0x32,0xe4,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0xbb, +/*000010b0:*/0x08,0x02,0xe8,0x3b,0x47,0x40,0x8b,0xd0,0x5b,0x66,0x58,0xc3,0xcf,0xcb,0xbc,0x10, +/*000010c0:*/0xbd,0x10,0x2e,0xff,0x36,0xbe,0x10,0xeb,0x0a,0x2e,0x8a,0x26,0x31,0x01,0x2e,0xff, +/*000010d0:*/0x36,0xc0,0x10,0x1e,0x06,0x66,0x60,0x93,0x32,0xff,0xd1,0xe3,0x81,0xfb,0x2e,0x00, +/*000010e0:*/0x0f,0x83,0xd0,0x02,0xfc,0x2e,0xff,0xa7,0xea,0x10,0x18,0x11,0x24,0x11,0x2a,0x11, +/*000010f0:*/0x44,0x11,0x73,0x11,0x98,0x11,0xbf,0x11,0xec,0x11,0x04,0x12,0x29,0x12,0xc4,0x12, +/*00001100:*/0x0f,0x13,0x31,0x13,0x40,0x13,0x9d,0x13,0x9d,0x13,0x9d,0x13,0x9d,0x13,0x9d,0x13, +/*00001110:*/0x9d,0x13,0x4c,0x13,0x56,0x13,0x7b,0x13,0xe8,0xee,0x60,0x0a,0xe4,0x74,0x03,0xe9, +/*00001120:*/0x8a,0x02,0xb1,0x01,0xe8,0xfe,0x60,0xe9,0x7a,0x02,0x51,0x0f,0xb6,0xd9,0x80,0xe3, +/*00001130:*/0x03,0x2e,0x8a,0xa7,0x40,0x11,0xe8,0x29,0x5e,0x59,0xe8,0xbb,0x81,0xe9,0x64,0x02, +/*00001140:*/0x09,0x00,0x0a,0x0b,0x8b,0xd8,0x80,0xe1,0x03,0x0a,0xc9,0x75,0x03,0xe9,0x64,0x02, +/*00001150:*/0x80,0xf9,0x01,0x75,0x03,0xe9,0x5c,0x02,0x80,0xf9,0x02,0x74,0x03,0xe9,0x4c,0x02, +/*00001160:*/0xe8,0xdd,0x55,0x8b,0xec,0x89,0x5e,0x10,0x89,0x4e,0x18,0xc7,0x46,0x1c,0x04,0x00, +/*00001170:*/0xe9,0x31,0x02,0x8b,0xec,0xb8,0x00,0x70,0x88,0x66,0x19,0xb8,0xff,0x01,0x89,0x46, +/*00001180:*/0x14,0xe8,0x26,0x61,0xb0,0x20,0x89,0x46,0x10,0xe8,0x00,0x61,0x89,0x46,0x04,0xe8, +/*00001190:*/0xf1,0x60,0x89,0x46,0x00,0xe9,0x0c,0x02,0x8b,0xec,0x2e,0x0f,0xb6,0x06,0x31,0x01, +/*000011a0:*/0x24,0x0f,0x89,0x46,0x18,0xe8,0xfd,0x44,0x89,0x56,0x14,0xb2,0x14,0xed,0x89,0x46, +/*000011b0:*/0x00,0x2e,0xa1,0x46,0x01,0x2e,0xa1,0x46,0x01,0x89,0x46,0x04,0xe9,0xe5,0x01,0x8b, +/*000011c0:*/0xec,0xe8,0x89,0x60,0xc1,0xe8,0x03,0x89,0x46,0x18,0xe8,0xc8,0x60,0x89,0x46,0x10, +/*000011d0:*/0xe8,0xce,0x60,0x89,0x46,0x04,0x66,0xc1,0xe8,0x10,0x89,0x46,0x00,0xe8,0x91,0x60, +/*000011e0:*/0x89,0x46,0x14,0xe8,0x94,0x60,0x88,0x46,0x1c,0xe9,0xb8,0x01,0x8b,0xec,0xe8,0xa3, +/*000011f0:*/0xf8,0x88,0x46,0x18,0x8c,0x4e,0x14,0xc7,0x46,0x00,0x38,0x66,0xc7,0x46,0x04,0x2a, +/*00001200:*/0x67,0xe9,0xa0,0x01,0x8e,0xc2,0x8b,0xd8,0x57,0xb9,0x20,0x00,0x8b,0xfb,0x33,0xc0, +/*00001210:*/0xf3,0xab,0x5f,0x8b,0xc7,0x24,0x07,0x8b,0xfb,0x3c,0x01,0x75,0x06,0xe8,0xfa,0x80, +/*00001220:*/0xe9,0x81,0x01,0xe8,0x43,0xfd,0xe9,0x7b,0x01,0x8e,0xc2,0x8b,0xd8,0x57,0x51,0xb9, +/*00001230:*/0x20,0x00,0x8b,0xfb,0x33,0xc0,0xf3,0xab,0x59,0x5f,0x83,0xff,0x02,0x74,0x05,0x83, +/*00001240:*/0xff,0x06,0x75,0x08,0x83,0xec,0x12,0x8b,0xec,0xe8,0x63,0x9a,0x83,0xec,0x3e,0x8b, +/*00001250:*/0xec,0x53,0x57,0xe8,0xca,0x4f,0x50,0x83,0xff,0x00,0x75,0x04,0xb0,0x02,0xeb,0x29, +/*00001260:*/0x83,0xff,0x04,0x75,0x04,0xb0,0x20,0xeb,0x20,0x83,0xff,0x01,0x75,0x04,0xb0,0x04, +/*00001270:*/0xeb,0x17,0x83,0xff,0x02,0x75,0x04,0xb0,0x08,0xeb,0x0e,0x83,0xff,0x06,0x75,0x04, +/*00001280:*/0xb0,0x80,0xeb,0x05,0x58,0x5f,0x5b,0xeb,0x28,0x8a,0xe0,0xe8,0x83,0x4f,0xe8,0x6d, +/*00001290:*/0xf4,0x58,0x8a,0xe0,0xe8,0x7a,0x4f,0x5b,0x5f,0x8a,0x46,0x02,0x0a,0xc0,0x74,0x11, +/*000012a0:*/0x8b,0x46,0x24,0xab,0x8b,0x46,0x26,0xab,0x8b,0xf5,0xb9,0x0f,0x00,0x16,0x1f,0xf3, +/*000012b0:*/0xa5,0x83,0xc4,0x3e,0x83,0xfb,0x02,0x74,0x05,0x83,0xfb,0x06,0x75,0x03,0x83,0xc4, +/*000012c0:*/0x12,0xe9,0xe0,0x00,0x0a,0xed,0x75,0x2f,0x80,0xe1,0x07,0xe8,0xd7,0x43,0xb2,0x2b, +/*000012d0:*/0xec,0x24,0xfc,0x0a,0xc1,0xee,0xe8,0x70,0x4f,0xa8,0x02,0x74,0x03,0xe8,0xdc,0x00, +/*000012e0:*/0xe8,0x66,0x4f,0xa8,0x08,0x74,0x03,0xe8,0x1d,0x9f,0xe8,0x5c,0x4f,0xa8,0x04,0x74, +/*000012f0:*/0x03,0xe8,0x6d,0x80,0xe9,0xad,0x00,0x80,0xfd,0x01,0x74,0x03,0xe9,0xad,0x00,0xe8, +/*00001300:*/0xa3,0x43,0xb2,0x2b,0xec,0x24,0x07,0x8b,0xec,0x88,0x46,0x18,0xe9,0x95,0x00,0x66, +/*00001310:*/0xc1,0xc1,0x10,0x33,0xc9,0x66,0xc1,0xc1,0x10,0x81,0xf9,0x00,0x01,0x76,0x03,0xb9, +/*00001320:*/0x00,0x01,0x8b,0xd8,0xe8,0x07,0x4b,0x8b,0xec,0x89,0x5e,0x10,0x89,0x46,0x1c,0xeb, +/*00001330:*/0x6e,0x8b,0xd8,0xe8,0xed,0x5f,0x8b,0xec,0x89,0x4e,0x18,0x89,0x46,0x1c,0xeb,0x5f, +/*00001340:*/0x8b,0xd8,0xe8,0xda,0xfa,0x8b,0xec,0x89,0x46,0x1c,0xeb,0x53,0xe8,0xbd,0x00,0x8b, +/*00001350:*/0xec,0x89,0x4e,0x18,0xeb,0x4e,0x0a,0xed,0x75,0x0c,0xe8,0xc3,0x4e,0xd0,0xe8,0x8b, +/*00001360:*/0xec,0x88,0x46,0x18,0xeb,0x3e,0x80,0xfd,0x01,0x75,0x41,0x8a,0xe1,0xd0,0xe4,0xe8, +/*00001370:*/0x44,0x4e,0x22,0xe1,0x74,0x36,0xe8,0x98,0x4e,0xeb,0x29,0xe8,0xfb,0x7f,0x0b,0xc0, +/*00001380:*/0x74,0x32,0x83,0xf8,0x03,0x74,0x25,0x8b,0xec,0x83,0xf8,0x01,0x75,0x05,0x88,0x4e, +/*00001390:*/0x19,0xeb,0x11,0x83,0xf8,0x02,0x75,0x0c,0x89,0x4e,0x18,0xeb,0x07,0xeb,0x00,0x66, +/*000013a0:*/0x61,0x07,0x1f,0xc3,0x8b,0xec,0xc6,0x46,0x1d,0x00,0xeb,0xf3,0x8b,0xec,0xc6,0x46, +/*000013b0:*/0x1d,0x01,0xeb,0xeb,0x8b,0xec,0xc6,0x46,0x1d,0x02,0xeb,0xe3,0x80,0xf9,0x04,0x74, +/*000013c0:*/0x2b,0x0f,0xb6,0xd9,0xd1,0xe3,0x53,0x2e,0x8a,0xa7,0xf3,0x13,0xe8,0xd6,0x42,0xb2, +/*000013d0:*/0x55,0xec,0x24,0xfc,0x0a,0xc4,0xee,0x5b,0x2e,0x8a,0xa7,0xf4,0x13,0xb2,0x59,0xec, +/*000013e0:*/0x24,0x7f,0x0a,0xc4,0xee,0xe8,0x4c,0x4c,0xe8,0x2e,0x5b,0xc3,0xe8,0x33,0x4c,0xe8, +/*000013f0:*/0x27,0x5b,0xc3,0x00,0x00,0x01,0x80,0x02,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00, +/*00001400:*/0x00,0x00,0x00,0x0e,0xe8,0xc2,0xfc,0xc3,0xee,0xc3,0xec,0xc3,0xf6,0xc1,0x01,0x74, +/*00001410:*/0x08,0xe8,0xdd,0x61,0xb4,0x03,0xe8,0x89,0x4d,0xf6,0xc5,0x01,0x74,0x12,0xe8,0xfb, +/*00001420:*/0x61,0xb4,0x03,0xe8,0x73,0x4d,0xa8,0x03,0x74,0x06,0xb8,0x00,0x08,0xe8,0x72,0x4d, +/*00001430:*/0xf6,0xc1,0x02,0x74,0x08,0xe8,0x0c,0x81,0xb4,0x30,0xe8,0x65,0x4d,0xf6,0xc1,0x04, +/*00001440:*/0x74,0x03,0xb8,0x00,0x04,0xf6,0xc1,0x08,0x74,0x16,0xb8,0x00,0x08,0xb7,0x02,0xe8, +/*00001450:*/0x3e,0x4a,0x0a,0xdb,0x74,0x07,0xe8,0xfe,0x4b,0x75,0x02,0xb0,0x08,0xe8,0x42,0x4d, +/*00001460:*/0x81,0xe1,0xc0,0x40,0xe8,0x3e,0x42,0xb2,0x20,0xed,0x25,0x3f,0xbf,0x0b,0xc1,0xef, +/*00001470:*/0xed,0x8b,0xc8,0xc3,0x28,0x18,0x08,0x00,0x08,0x09,0x03,0x00,0x02,0x63,0x2d,0x27, +/*00001480:*/0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001490:*/0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*000014a0:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000014b0:*/0x10,0x0e,0x00,0xff,0x28,0x18,0x08,0x00,0x08,0x09,0x03,0x00,0x02,0x63,0x2d,0x27, +/*000014c0:*/0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*000014d0:*/0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*000014e0:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000014f0:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x08,0x00,0x10,0x01,0x03,0x00,0x02,0x63,0x5f,0x4f, +/*00001500:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001510:*/0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*00001520:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001530:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x08,0x00,0x10,0x01,0x03,0x00,0x02,0x63,0x5f,0x4f, +/*00001540:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001550:*/0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*00001560:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001570:*/0x10,0x0e,0x00,0xff,0x28,0x18,0x08,0x00,0x40,0x09,0x03,0x00,0x02,0x63,0x2d,0x27, +/*00001580:*/0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001590:*/0x8f,0x14,0x00,0x96,0xb9,0xa2,0xff,0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,0x10, +/*000015a0:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +/*000015b0:*/0x30,0x0f,0x00,0xff,0x28,0x18,0x08,0x00,0x40,0x09,0x03,0x00,0x02,0x63,0x2d,0x27, +/*000015c0:*/0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*000015d0:*/0x8f,0x14,0x00,0x96,0xb9,0xa2,0xff,0x00,0x13,0x15,0x17,0x02,0x04,0x06,0x07,0x10, +/*000015e0:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00, +/*000015f0:*/0x30,0x0f,0x00,0xff,0x50,0x18,0x08,0x00,0x40,0x01,0x01,0x00,0x06,0x63,0x5f,0x4f, +/*00001600:*/0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001610:*/0x8f,0x28,0x00,0x96,0xb9,0xc2,0xff,0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +/*00001620:*/0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001630:*/0x00,0x0d,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x00,0x03,0x00,0x03,0xa6,0x5f,0x4f, +/*00001640:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001650:*/0x5d,0x28,0x0d,0x63,0xba,0xa3,0xff,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10, +/*00001660:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001670:*/0x10,0x0a,0x00,0xff,0x84,0x18,0x10,0x00,0x20,0x01,0x03,0x00,0x62,0x63,0xa1,0x83, +/*00001680:*/0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001690:*/0x8f,0x42,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*000016a0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000016b0:*/0x10,0x0e,0x00,0xff,0x84,0x2b,0x08,0x00,0x40,0x01,0x03,0x00,0x62,0x63,0xa1,0x83, +/*000016c0:*/0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x47,0x06,0x07,0x00,0x00,0x00,0x00,0x83,0x85, +/*000016d0:*/0x5f,0x42,0x08,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*000016e0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000016f0:*/0x10,0x0e,0x00,0xff,0x64,0x18,0x10,0x00,0xa0,0x00,0x03,0x00,0x22,0x6f,0x7a,0x63, +/*00001700:*/0x66,0x9b,0x6b,0x92,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001710:*/0x8f,0x32,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001720:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001730:*/0x10,0x0e,0x00,0xff,0x64,0x1d,0x10,0x00,0x20,0x00,0x03,0x00,0x22,0xef,0x7a,0x63, +/*00001740:*/0x66,0x9b,0x6b,0x92,0x08,0x3e,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0xea,0x8f, +/*00001750:*/0xdf,0x32,0x00,0xe7,0x04,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001760:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001770:*/0x10,0x0e,0x00,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00,0x0a,0xe3,0x5f,0x4f, +/*00001780:*/0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x8c, +/*00001790:*/0xdf,0x28,0x00,0xe7,0x04,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, +/*000017a0:*/0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x10,0x00,0x00,0x00,0x00, +/*000017b0:*/0x00,0x05,0x0f,0xff,0x28,0x18,0x08,0x00,0x20,0x09,0x0f,0x00,0x06,0x63,0x2d,0x27, +/*000017c0:*/0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*000017d0:*/0x8f,0x14,0x00,0x96,0xb9,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*000017e0:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000017f0:*/0x00,0x05,0x0f,0xff,0x50,0x18,0x08,0x00,0x40,0x01,0x0f,0x00,0x06,0x63,0x5f,0x4f, +/*00001800:*/0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001810:*/0x8f,0x28,0x00,0x96,0xb9,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10, +/*00001820:*/0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001830:*/0x00,0x05,0x0f,0xff,0x00,0x05,0x11,0x1c,0x08,0x0b,0x25,0x28,0x02,0x07,0x1b,0x20, +/*00001840:*/0x0f,0x14,0x28,0x2c,0x0c,0x11,0x25,0x2a,0x14,0x1e,0x32,0x36,0x0f,0x13,0x27,0x2c, +/*00001850:*/0x1b,0x20,0x34,0x39,0x06,0x0b,0x1f,0x24,0x13,0x18,0x2c,0x30,0x09,0x0d,0x21,0x26, +/*00001860:*/0x15,0x1a,0x2e,0x33,0x13,0x17,0x2b,0x30,0x1f,0x24,0x38,0x3d,0x0e,0x18,0x2d,0x32, +/*00001870:*/0x20,0x24,0x38,0x3f,0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18,0x00,0x05,0x11,0x1c, +/*00001880:*/0x08,0x0b,0x14,0x18,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x0e,0x18,0x2d,0x32, +/*00001890:*/0x20,0x24,0x38,0x3f,0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18,0x00,0x05,0x11,0x1c, +/*000018a0:*/0x08,0x0b,0x14,0x18,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x0e,0x18,0x2d,0x32, +/*000018b0:*/0x20,0x24,0x38,0x3f,0x50,0x18,0x0e,0x00,0x80,0x01,0x0f,0x00,0x06,0xa2,0x5f,0x4f, +/*000018c0:*/0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x85, +/*000018d0:*/0x5d,0x28,0x0f,0x63,0xba,0xe3,0xff,0x00,0x08,0x00,0x00,0x18,0x18,0x00,0x00,0x00, +/*000018e0:*/0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x0b,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00, +/*000018f0:*/0x00,0x05,0x05,0xff,0x50,0x18,0x0e,0x00,0x80,0x01,0x0f,0x00,0x06,0xa3,0x5f,0x4f, +/*00001900:*/0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001910:*/0x5d,0x28,0x0f,0x63,0xba,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001920:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001930:*/0x00,0x05,0x0f,0xff,0x28,0x18,0x0e,0x00,0x08,0x09,0x03,0x00,0x02,0xa3,0x2d,0x27, +/*00001940:*/0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001950:*/0x5d,0x14,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001960:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001970:*/0x10,0x0e,0x00,0xff,0x28,0x18,0x0e,0x00,0x08,0x09,0x03,0x00,0x02,0xa3,0x2d,0x27, +/*00001980:*/0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001990:*/0x5d,0x14,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*000019a0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000019b0:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x01,0x03,0x00,0x02,0xa3,0x5f,0x4f, +/*000019c0:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,0x83,0x85, +/*000019d0:*/0x5d,0x28,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*000019e0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*000019f0:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x01,0x03,0x00,0x02,0xa3,0x5f,0x4f, +/*00001a00:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001a10:*/0x5d,0x28,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001a20:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001a30:*/0x10,0x0e,0x00,0xff,0x28,0x18,0x10,0x00,0x08,0x08,0x03,0x00,0x02,0x67,0x2d,0x27, +/*00001a40:*/0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001a50:*/0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001a60:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001a70:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x10,0x00,0x10,0x00,0x03,0x00,0x02,0x67,0x5f,0x4f, +/*00001a80:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001a90:*/0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001aa0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001ab0:*/0x10,0x0e,0x00,0xff,0x50,0x18,0x10,0x00,0x10,0x00,0x03,0x00,0x02,0x66,0x5f,0x4f, +/*00001ac0:*/0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001ad0:*/0x8f,0x28,0x0f,0x96,0xb9,0xa3,0xff,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10, +/*00001ae0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x00,0x0f,0x08,0x00,0x00,0x00,0x00,0x00, +/*00001af0:*/0x10,0x0a,0x00,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00,0x06,0xe3,0x5f,0x4f, +/*00001b00:*/0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x8c, +/*00001b10:*/0xdf,0x28,0x00,0xe7,0x04,0xc3,0xff,0x00,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, +/*00001b20:*/0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x01,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001b30:*/0x00,0x05,0x01,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00,0x06,0xe3,0x5f,0x4f, +/*00001b40:*/0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0xea,0x8c, +/*00001b50:*/0xdf,0x28,0x00,0xe7,0x04,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001b60:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001b70:*/0x00,0x05,0x0f,0xff,0x28,0x18,0x08,0x00,0x20,0x01,0x0f,0x00,0x0e,0x63,0x5f,0x4f, +/*00001b80:*/0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x8e, +/*00001b90:*/0x8f,0x28,0x40,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08, +/*00001ba0:*/0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x41,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001bb0:*/0x40,0x05,0x0f,0xff,0x84,0x2a,0x08,0x00,0x40,0x01,0x03,0x00,0x62,0x63,0xa1,0x83, +/*00001bc0:*/0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x47,0x06,0x07,0x00,0x00,0x00,0x00,0x83,0x85, +/*00001bd0:*/0x57,0x42,0x08,0x6b,0xb2,0xa3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001be0:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001bf0:*/0x10,0x0e,0x00,0xff,0x64,0x2a,0x10,0x00,0xa0,0x01,0x0f,0x00,0x26,0xef,0x7f,0x63, +/*00001c00:*/0x64,0x82,0x6a,0x1a,0x71,0xf0,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x8b, +/*00001c10:*/0x57,0x32,0x00,0x58,0x71,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001c20:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x40,0x00,0x00,0x00,0x00, +/*00001c30:*/0x00,0x05,0x0f,0xff,0x80,0x36,0x10,0x00,0xa0,0x01,0x0f,0x00,0x26,0xef,0xa3,0x7f, +/*00001c40:*/0x80,0x86,0x84,0x95,0x23,0xfd,0x00,0x60,0x00,0x00,0x00,0x00,0x05,0xff,0x01,0x87, +/*00001c50:*/0xff,0x40,0x00,0x00,0x23,0xe3,0xff,0x00,0x01,0x02,0x03,0x04,0x05,0x14,0x07,0x38, +/*00001c60:*/0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x40,0x00,0x00,0x00,0x00, +/*00001c70:*/0x00,0x05,0x0f,0xff,0x0e,0xe8,0x01,0x00,0xc3,0x80,0xfc,0xa0,0x0f,0x84,0x49,0xf4, +/*00001c80:*/0x80,0xfc,0x4f,0x0f,0x84,0xd8,0x2e,0x2e,0xff,0x36,0xc0,0x10,0xeb,0x15,0xfb,0xfc, +/*00001c90:*/0x80,0xfc,0xa0,0x0f,0x84,0x2b,0xf4,0x80,0xfc,0x4f,0x0f,0x84,0xc8,0x2e,0x2e,0xff, +/*00001ca0:*/0x36,0xbe,0x10,0x1e,0x06,0x66,0x60,0x50,0x0f,0xb6,0xc4,0xd1,0xe0,0x3d,0x3a,0x00, +/*00001cb0:*/0x73,0x08,0x8b,0xf0,0x58,0x2e,0xff,0xa4,0xc8,0x1c,0x58,0x66,0x61,0x07,0x1f,0xcd, +/*00001cc0:*/0x42,0xc3,0x66,0x61,0x07,0x1f,0xc3,0x90,0x3c,0x1d,0x69,0x88,0x82,0x88,0x9f,0x88, +/*00001cd0:*/0xb1,0x1e,0x2a,0x7e,0x57,0x7e,0x05,0x7f,0x94,0x7f,0x33,0x81,0x37,0x81,0x3c,0x85, +/*00001ce0:*/0x13,0x86,0xa5,0x86,0x1b,0x87,0xbb,0x88,0x1e,0x89,0xf5,0x8b,0x7c,0x23,0x7c,0x90, +/*00001cf0:*/0xc2,0x1c,0xc2,0x1c,0xc2,0x1c,0xc2,0x1c,0xc2,0x1c,0xc2,0x1c,0x50,0x91,0x98,0x3e, +/*00001d00:*/0xe7,0x3f,0x74,0x14,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001d10:*/0x00,0x00,0x22,0x1d,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001d20:*/0x00,0x00,0x1a,0x00,0x54,0x92,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001d30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0xad,0x5a,0x80, +/*00001d40:*/0x26,0x87,0x04,0xf3,0x50,0x24,0x7f,0x8a,0xe0,0xe8,0x31,0x03,0x58,0x8a,0xe0,0x24, +/*00001d50:*/0x7f,0xe8,0x0b,0x45,0x3c,0x07,0x7e,0x2e,0x3b,0xd3,0x75,0x2a,0x8d,0x36,0xe6,0x48, +/*00001d60:*/0x0e,0x1f,0x83,0x3c,0xff,0x74,0x1c,0x38,0x44,0x02,0x74,0x05,0x83,0xc6,0x09,0xeb, +/*00001d70:*/0xf1,0x8b,0x5c,0x02,0x53,0x8b,0x1c,0x80,0xe4,0x80,0x0a,0xfc,0xb8,0x02,0x4f,0xe8, +/*00001d80:*/0xf2,0xfe,0x58,0xe9,0x3c,0xff,0x50,0xe8,0xb4,0x44,0x0a,0xc0,0x75,0x04,0x58,0xe9, +/*00001d90:*/0x30,0xff,0xba,0xcc,0x03,0xec,0xb2,0xb4,0xb1,0x30,0x26,0xf6,0x47,0x09,0x01,0x74, +/*00001da0:*/0x0c,0xb2,0xd4,0xb1,0x20,0xa8,0x01,0x75,0x47,0xb5,0x09,0xeb,0x06,0xa8,0x01,0x74, +/*00001db0:*/0x3f,0xb5,0x0b,0xe8,0xc0,0x73,0x0a,0xff,0x75,0x0b,0x80,0x26,0x88,0x04,0xf0,0x08, +/*00001dc0:*/0x2e,0x88,0x04,0xeb,0x2b,0x58,0x80,0x0e,0x87,0x04,0x08,0x80,0x26,0x10,0x04,0xcf, +/*00001dd0:*/0x08,0x0e,0x10,0x04,0x89,0x16,0x63,0x04,0xc7,0x06,0x85,0x04,0x08,0x00,0xc6,0x06, +/*00001de0:*/0x84,0x04,0x18,0xc7,0x06,0x0c,0x01,0x82,0x26,0x8c,0x0e,0x0e,0x01,0xe9,0xcb,0xfe, +/*00001df0:*/0x80,0x26,0x10,0x04,0xcf,0x08,0x0e,0x10,0x04,0x58,0x80,0xe4,0x80,0x80,0x26,0x87, +/*00001e00:*/0x04,0x7f,0x08,0x26,0x87,0x04,0x8a,0xe0,0x50,0xe8,0x54,0x51,0xe8,0x19,0x05,0x75, +/*00001e10:*/0x0f,0xe8,0xed,0x04,0x74,0x0a,0xe8,0xf5,0x04,0x75,0x05,0x32,0xc9,0xe8,0x05,0x54, +/*00001e20:*/0x58,0x88,0x26,0x49,0x04,0xe8,0x51,0x02,0x55,0x83,0xec,0x46,0x8b,0xec,0x50,0x53, +/*00001e30:*/0x51,0x55,0xb9,0x46,0x00,0xd1,0xe9,0x33,0xc0,0x89,0x46,0x00,0x83,0xc5,0x02,0xe2, +/*00001e40:*/0xf8,0x5d,0x55,0xb9,0x19,0x00,0x26,0x8a,0x47,0x0a,0x88,0x46,0x00,0x43,0x45,0xe2, +/*00001e50:*/0xf5,0x5d,0x59,0x5b,0xb8,0xd6,0x09,0x26,0xf6,0x47,0x09,0x04,0x74,0x03,0xb8,0x10, +/*00001e60:*/0x0b,0x89,0x46,0x1a,0x58,0x50,0xe8,0xfd,0x5c,0xe8,0x40,0x29,0xe8,0x67,0x6d,0x58, +/*00001e70:*/0xe8,0x47,0x00,0xe8,0x1f,0x6f,0xe8,0x2e,0x03,0xe8,0xeb,0x02,0x06,0x53,0xe8,0xa7, +/*00001e80:*/0x70,0x5b,0x07,0xe8,0x08,0x29,0xb9,0x01,0x00,0xe8,0x4a,0x6d,0xe8,0xce,0x5c,0xe8, +/*00001e90:*/0xc6,0x5c,0xe8,0x86,0x04,0x75,0x13,0xe8,0x0b,0x38,0xb2,0x51,0xec,0x24,0xf0,0x0c, +/*00001ea0:*/0x02,0xee,0xb2,0x53,0xec,0x0c,0x02,0x24,0xfe,0xee,0x83,0xc4,0x46,0x5d,0xe9,0x11, +/*00001eb0:*/0xfe,0x8b,0xec,0xc6,0x46,0x1d,0x00,0xe9,0x08,0xfe,0x50,0xe8,0x12,0x4d,0xe8,0x52, +/*00001ec0:*/0x00,0x58,0xe8,0x48,0x45,0xe8,0x2a,0x00,0xe8,0xda,0x00,0xe8,0xd7,0x92,0x75,0x05, +/*00001ed0:*/0xe8,0xdf,0x92,0x74,0x11,0xe8,0xef,0x3f,0xe8,0x17,0x00,0xe8,0xf7,0x3f,0x55,0x83, +/*00001ee0:*/0xc5,0x19,0xe8,0x9c,0x96,0x5d,0xe8,0x51,0x00,0x53,0xe8,0x29,0x06,0x5b,0xe8,0x0d, +/*00001ef0:*/0x4d,0xc3,0x53,0x8b,0xdd,0x8b,0x16,0x63,0x04,0xb9,0x19,0x00,0xb8,0x11,0x30,0xef, +/*00001f00:*/0x32,0xc0,0x36,0x8a,0x27,0xef,0x43,0xfe,0xc0,0xe2,0xf7,0x5b,0x80,0xc2,0x06,0x32, +/*00001f10:*/0xc0,0xee,0xc3,0x53,0x83,0xc3,0x05,0xba,0xc4,0x03,0xb8,0x00,0x01,0xef,0xb9,0x04, +/*00001f20:*/0x00,0xb0,0x01,0x26,0x8a,0x27,0x80,0xe4,0x1f,0xef,0x43,0xfe,0xc0,0xe2,0xf4,0x5b, +/*00001f30:*/0xe8,0x89,0x00,0xb2,0xc4,0xb8,0x00,0x03,0xef,0xc3,0x8b,0xf3,0x83,0xc6,0x23,0xba, +/*00001f40:*/0xda,0x03,0x26,0xf6,0x47,0x09,0x01,0x75,0x02,0xb2,0xba,0xf6,0x06,0x89,0x04,0x08, +/*00001f50:*/0x74,0x1d,0x83,0xc6,0x10,0xec,0xb9,0x04,0x00,0xb4,0x10,0xb2,0xc0,0x80,0xfc,0x11, +/*00001f60:*/0x74,0x07,0x8a,0xc4,0xee,0x26,0x8a,0x04,0xee,0x46,0xfe,0xc4,0xe2,0xef,0xc3,0x53, +/*00001f70:*/0xec,0x8b,0xde,0xb9,0x14,0x00,0x32,0xe4,0xb2,0xc0,0x8a,0xc4,0xee,0xfe,0xc4,0x26, +/*00001f80:*/0x8a,0x07,0xee,0x43,0xe2,0xf4,0x8a,0xc4,0xee,0x32,0xc0,0xee,0x1e,0x06,0xe8,0x5b, +/*00001f90:*/0x58,0xe8,0xdb,0x5b,0x0b,0xed,0x74,0x09,0x1f,0x1e,0xb9,0x10,0x00,0xf3,0xa4,0x46, +/*00001fa0:*/0xa4,0x07,0x1f,0x5b,0xc3,0x53,0x83,0xc3,0x37,0xb9,0x09,0x00,0x32,0xc0,0xba,0xce, +/*00001fb0:*/0x03,0x26,0x8a,0x27,0xef,0x43,0xfe,0xc0,0xe2,0xf7,0x5b,0xc3,0x81,0xfb,0xf4,0x1b, +/*00001fc0:*/0x75,0x05,0xb8,0xa0,0x0f,0xeb,0x3a,0x81,0xfb,0x34,0x1c,0x75,0x05,0xb8,0x64,0x19, +/*00001fd0:*/0xeb,0x2f,0x1e,0x06,0x1f,0xe8,0x6e,0x00,0x1f,0x8a,0xc8,0x8a,0xe8,0x33,0xd2,0x53, +/*00001fe0:*/0x8a,0xd9,0x80,0xe3,0x0f,0x32,0xff,0xd1,0xe3,0x2e,0x8b,0x87,0x64,0x06,0x5b,0xf6, +/*00001ff0:*/0xc1,0x10,0x74,0x02,0xd1,0xe8,0xba,0x18,0x00,0x80,0xfd,0x01,0x76,0x03,0xba,0x1a, +/*00002000:*/0x00,0x8b,0xf8,0x26,0xf6,0x47,0x37,0x10,0x74,0x05,0xba,0x1a,0x00,0xd1,0xe7,0x8a, +/*00002010:*/0xcd,0x83,0xfa,0x19,0x72,0x14,0x50,0xe8,0x68,0x40,0xa8,0x01,0x58,0x75,0x0b,0x53, +/*00002020:*/0x8b,0xd8,0xb5,0x03,0xe8,0x19,0x47,0xb1,0x03,0x5b,0x26,0x8a,0x47,0x09,0x24,0xf3, +/*00002030:*/0xc0,0xe1,0x02,0x80,0xe1,0x0c,0x0a,0xc1,0xba,0xc2,0x03,0xee,0xa8,0x08,0x74,0x05, +/*00002040:*/0x8b,0xc7,0xe8,0xcb,0x4d,0xc3,0x8a,0x67,0x05,0x8a,0x47,0x09,0x25,0x0c,0xc0,0xc1, +/*00002050:*/0xe8,0x02,0x0c,0x00,0x8a,0x6f,0x08,0xf6,0xc5,0x80,0x74,0x06,0x34,0x08,0x24,0x0f, +/*00002060:*/0x0a,0xc4,0xf6,0xc5,0x40,0x74,0x06,0x34,0x04,0x24,0x0f,0x0a,0xc4,0xf6,0xc5,0x20, +/*00002070:*/0x74,0x02,0x24,0x0f,0xc3,0xe8,0x8f,0x96,0xc3,0x8a,0x26,0x49,0x04,0xbb,0x74,0x14, +/*00002080:*/0x0e,0x07,0x8b,0xd3,0x0a,0xe4,0x7d,0x01,0xc3,0x50,0xe8,0x02,0x00,0x58,0xc3,0x33, +/*00002090:*/0xf6,0x80,0xfc,0x03,0x7f,0x3c,0x4a,0xf6,0x06,0x89,0x04,0x10,0x75,0x20,0xa0,0x88, +/*000020a0:*/0x04,0x24,0x0f,0x3c,0x02,0x7e,0x24,0x3c,0x08,0x74,0x20,0x3c,0x06,0x74,0x1c,0x3c, +/*000020b0:*/0x07,0x74,0x18,0xb0,0x40,0xf6,0xe4,0x03,0xd8,0x81,0xc3,0xc0,0x04,0xc3,0xb0,0x40, +/*000020c0:*/0xd0,0xec,0xf6,0xe4,0x03,0xd8,0x81,0xc3,0xc0,0x05,0xc3,0xb0,0x40,0xf6,0xe4,0x03, +/*000020d0:*/0xd8,0xc3,0x80,0xfc,0x07,0x75,0x11,0xf6,0x06,0x89,0x04,0x10,0x75,0x05,0x81,0xc3, +/*000020e0:*/0xc0,0x01,0xc3,0x81,0xc3,0x40,0x06,0xc3,0xbf,0xf4,0x20,0xbe,0x2a,0x21,0x33,0xc9, +/*000020f0:*/0xe8,0xa0,0x00,0xc3,0x04,0x00,0x01,0x05,0x40,0x01,0x06,0x80,0x01,0x0d,0x40,0x03, +/*00002100:*/0x0e,0x80,0x03,0x0f,0x40,0x04,0x10,0x80,0x04,0x11,0x80,0x06,0x12,0xc0,0x06,0x13, +/*00002110:*/0x00,0x07,0x62,0x00,0x03,0x21,0x80,0x02,0x22,0xc0,0x02,0x23,0x00,0x02,0x33,0x40, +/*00002120:*/0x02,0x6a,0x80,0x07,0x55,0xc0,0x07,0x32,0x40,0x07,0xf6,0x06,0x89,0x04,0x02,0x74, +/*00002130:*/0x19,0xc7,0x06,0x87,0x04,0x62,0xfb,0xc6,0x06,0x8a,0x04,0x0d,0xe8,0x22,0x26,0x0a, +/*00002140:*/0xc0,0x74,0x1e,0xc6,0x06,0x88,0x04,0xf9,0xeb,0x17,0xc7,0x06,0x87,0x04,0x60,0xf9, +/*00002150:*/0xc6,0x06,0x8a,0x04,0x0b,0xe8,0x14,0x26,0x0a,0xc0,0x74,0x05,0xc6,0x06,0x88,0x04, +/*00002160:*/0xfb,0x80,0x0e,0x89,0x04,0x10,0xc3,0x53,0x8a,0x1e,0x49,0x04,0x80,0xfb,0x07,0x7f, +/*00002170:*/0x10,0x32,0xff,0xd1,0xe3,0x2e,0x8b,0x87,0x83,0x21,0xa2,0x65,0x04,0x88,0x26,0x66, +/*00002180:*/0x04,0x5b,0xc3,0x2c,0x30,0x28,0x30,0x2d,0x30,0x29,0x30,0x2a,0x30,0x2e,0x30,0x1e, +/*00002190:*/0x3f,0x29,0x30,0x2e,0x38,0x25,0x75,0x07,0x2e,0x03,0x5d,0x01,0x33,0xf6,0xc3,0x83, +/*000021a0:*/0xc7,0x03,0x3b,0xfe,0x75,0xed,0xc3,0x1e,0x06,0xe8,0x40,0x56,0xf6,0x06,0x87,0x04, +/*000021b0:*/0x80,0x75,0x53,0x83,0x3e,0x4c,0x04,0x00,0x74,0x4c,0xa0,0x49,0x04,0xb9,0x00,0x40, +/*000021c0:*/0x2e,0x8b,0x3e,0x56,0x56,0x26,0xf6,0x47,0x33,0x01,0x75,0x0e,0x26,0xf6,0x47,0x09, +/*000021d0:*/0x01,0x75,0x2a,0x2e,0x8b,0x3e,0x54,0x56,0xeb,0x23,0x3c,0x06,0x7e,0x1b,0x2e,0x8b, +/*000021e0:*/0x3e,0x52,0x56,0x26,0x8a,0x67,0x37,0xbe,0xde,0x22,0xb9,0x02,0x00,0xf6,0xc4,0x40, +/*000021f0:*/0x75,0x1f,0xf6,0xc4,0x30,0x75,0x12,0xb5,0x80,0x33,0xc0,0xeb,0x03,0xb8,0x20,0x07, +/*00002200:*/0x8e,0xc7,0x33,0xff,0xf3,0xab,0x07,0x1f,0xc3,0xe8,0x41,0x50,0x8b,0xc8,0xbe,0xd3, +/*00002210:*/0x22,0x8e,0xc7,0x32,0xe4,0x50,0x51,0x8a,0xec,0xff,0xd6,0x33,0xff,0x33,0xc0,0xb9, +/*00002220:*/0x00,0x80,0xf3,0xab,0x59,0x58,0x80,0xc4,0x02,0xe2,0xea,0x32,0xed,0xff,0xd6,0xeb, +/*00002230:*/0xd5,0x50,0xb0,0x6a,0x80,0xfd,0x6a,0x74,0x0c,0xb0,0x55,0x80,0xfd,0x55,0x74,0x05, +/*00002240:*/0x58,0xb8,0xff,0xff,0xc3,0x32,0xe4,0xe8,0x2a,0xfa,0x58,0x33,0xc0,0xc3,0x50,0x52, +/*00002250:*/0xe8,0x52,0x34,0xb2,0x10,0xec,0x24,0xf7,0xf6,0xc4,0x40,0x74,0x02,0x0c,0x08,0xee, +/*00002260:*/0x5a,0x58,0xc3,0x50,0x52,0xe8,0x3d,0x34,0xb2,0x10,0xec,0xa8,0x08,0x5a,0x58,0xc3, +/*00002270:*/0x50,0x52,0xe8,0x30,0x34,0xb2,0x10,0xec,0xa8,0x04,0x5a,0x58,0xc3,0x52,0xba,0x3c, +/*00002280:*/0x00,0xe8,0x13,0x34,0xee,0x83,0xc2,0x02,0xfe,0xc0,0xee,0x5a,0xc3,0x52,0xba,0x38, +/*00002290:*/0x00,0xeb,0xee,0x52,0xba,0x3c,0x00,0xe8,0xfd,0x33,0xec,0x02,0xc4,0xeb,0xe5,0x52, +/*000022a0:*/0xba,0x38,0x00,0xeb,0xf2,0x52,0xba,0x3c,0x00,0xc0,0xe0,0x02,0xe8,0xe8,0x33,0xee, +/*000022b0:*/0x83,0xc2,0x02,0x04,0x04,0xee,0x5a,0xc3,0x52,0xba,0x38,0x00,0xeb,0xeb,0x52,0xba, +/*000022c0:*/0x3c,0x00,0xe8,0xd2,0x33,0xec,0xc0,0xe4,0x02,0x02,0xc4,0xeb,0xe2,0x52,0xba,0x38, +/*000022d0:*/0x00,0xeb,0xef,0x8a,0xc5,0xe8,0xb5,0xff,0x8a,0xc5,0xe8,0xa0,0xff,0xc3,0x8a,0xc5, +/*000022e0:*/0xe8,0xd5,0xff,0x8a,0xc5,0xe8,0xbd,0xff,0xc3,0x50,0x52,0x8a,0xf2,0x8a,0xc2,0xe8, +/*000022f0:*/0xb3,0xff,0x8a,0xc6,0xe8,0xc1,0xff,0x5a,0x58,0xc3,0x50,0x52,0xc0,0xea,0x04,0xeb, +/*00002300:*/0xec,0x50,0x52,0xe8,0x9f,0x33,0xb2,0x53,0xec,0xa8,0x01,0x5a,0x58,0xc3,0x50,0x52, +/*00002310:*/0xe8,0x92,0x33,0xb2,0x10,0xec,0xa8,0x10,0x5a,0x58,0xc3,0x50,0x52,0xe8,0x85,0x33, +/*00002320:*/0xb2,0x10,0xec,0xa8,0x80,0x5a,0x58,0xc3,0x50,0x51,0x52,0xe8,0x77,0x33,0xb2,0x10, +/*00002330:*/0xec,0x24,0x7f,0xee,0xb2,0x57,0xec,0x8a,0xd8,0xe8,0xa7,0x3b,0x72,0x08,0xe8,0x86, +/*00002340:*/0x3b,0xb9,0x54,0x02,0xeb,0x06,0xe8,0x8c,0x3b,0xb9,0x08,0x02,0xb2,0x00,0x66,0x33, +/*00002350:*/0xc0,0x8b,0xc1,0x66,0xef,0xb2,0x06,0x52,0xec,0xfe,0xc8,0x8a,0xe0,0x8a,0xc8,0xe8, +/*00002360:*/0xe6,0x54,0xb0,0x12,0xef,0x5a,0xec,0x38,0xc1,0x9c,0x74,0x06,0xb2,0x10,0xec,0x0c, +/*00002370:*/0x80,0xee,0xb2,0x57,0x8a,0xc3,0xee,0x9d,0x5a,0x59,0x58,0xc3,0xe8,0x6d,0x54,0x80, +/*00002380:*/0xfb,0x10,0x75,0x03,0xe9,0x54,0x01,0x80,0xfb,0x20,0x75,0x03,0xe9,0x77,0x01,0x80, +/*00002390:*/0xfb,0x32,0x75,0x20,0x8a,0xe0,0xe8,0x0c,0x33,0xb2,0xe1,0xec,0x0c,0x01,0x24,0xfd, +/*000023a0:*/0xee,0x0a,0xe4,0x74,0x09,0xfe,0xcc,0x75,0x08,0x24,0xfe,0x0c,0x02,0xee,0xe9,0xba, +/*000023b0:*/0x00,0xe9,0x0e,0xf9,0x80,0xfb,0x30,0x74,0x03,0xe9,0x96,0x00,0x50,0xe8,0xb6,0x6d, +/*000023c0:*/0x8a,0xef,0xba,0xcc,0x03,0xec,0x8a,0xc8,0x58,0x0a,0xc0,0x75,0x30,0xb7,0x08,0xf6, +/*000023d0:*/0xc1,0x01,0x75,0x12,0x0a,0xed,0x75,0x0b,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x75, +/*000023e0:*/0x10,0xb7,0x02,0xe9,0x8b,0x00,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x75,0x02,0xb7, +/*000023f0:*/0x02,0x80,0x26,0x89,0x04,0x6f,0x80,0x0e,0x89,0x04,0x80,0xeb,0x36,0x3c,0x01,0x75, +/*00002400:*/0x41,0x80,0x26,0x89,0x04,0x6f,0xb7,0x09,0xf6,0xc1,0x01,0x75,0x15,0xb7,0x0b,0xa0, +/*00002410:*/0x10,0x04,0x24,0x30,0x3c,0x30,0x74,0x1b,0xb7,0x09,0x0a,0xed,0x74,0x15,0xb7,0x05, +/*00002420:*/0xeb,0x11,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x75,0x08,0xb7,0x0b,0x0a,0xed,0x74, +/*00002430:*/0x02,0xb7,0x03,0x8a,0x1e,0x88,0x04,0x80,0xe3,0xf0,0x0a,0xdf,0x88,0x1e,0x88,0x04, +/*00002440:*/0xeb,0x29,0x3c,0x02,0x75,0x2b,0x80,0x26,0x89,0x04,0x6f,0x80,0x0e,0x89,0x04,0x10, +/*00002450:*/0xeb,0xb4,0x80,0xfb,0x31,0x75,0x1d,0x0a,0xc0,0x74,0x0b,0x3c,0x01,0x75,0x0c,0x80, +/*00002460:*/0x0e,0x89,0x04,0x08,0xeb,0x05,0x80,0x26,0x89,0x04,0xf7,0x8b,0xec,0xc6,0x46,0x1c, +/*00002470:*/0x12,0xe9,0x4e,0xf8,0x80,0xfb,0x33,0x75,0x16,0x3c,0x00,0x74,0x0b,0x3c,0x01,0x75, +/*00002480:*/0xea,0x80,0x26,0x89,0x04,0xfd,0xeb,0xe3,0x80,0x0e,0x89,0x04,0x02,0xeb,0xdc,0x80, +/*00002490:*/0xfb,0x34,0x75,0x19,0x3c,0x00,0x75,0x07,0x80,0x26,0x87,0x04,0xfe,0xeb,0xcc,0x3c, +/*000024a0:*/0x01,0x75,0x07,0x80,0x0e,0x87,0x04,0x01,0xeb,0xc1,0xe9,0x15,0xf8,0x80,0xfb,0x36, +/*000024b0:*/0x75,0x26,0xbb,0x20,0xff,0x3c,0x01,0x74,0x09,0xbb,0x00,0xdf,0x3c,0x00,0x74,0x02, +/*000024c0:*/0xeb,0xa9,0xe8,0x02,0x00,0xeb,0xa4,0x9c,0xfa,0xba,0xc4,0x03,0xb0,0x01,0xee,0x42, +/*000024d0:*/0xec,0x22,0xc7,0x0a,0xc3,0xee,0x9d,0xc3,0xe9,0xe7,0xf7,0xb3,0x03,0xb7,0x00,0xba, +/*000024e0:*/0xcc,0x03,0xec,0xa8,0x01,0x75,0x02,0xb7,0x01,0xa0,0x88,0x04,0x8a,0xe0,0xb1,0x04, +/*000024f0:*/0xd2,0xec,0x25,0x0f,0x0f,0x8b,0xc8,0x8b,0xec,0x89,0x5e,0x10,0x89,0x4e,0x18,0xc6, +/*00002500:*/0x46,0x1c,0x12,0xe9,0xbc,0xf7,0x9c,0xfa,0xc7,0x06,0x14,0x00,0xb8,0x76,0x8c,0x0e, +/*00002510:*/0x16,0x00,0x9d,0xe9,0xac,0xf7,0xf6,0x06,0x89,0x04,0x08,0x74,0x01,0xc3,0x55,0x83, +/*00002520:*/0xec,0x02,0x8b,0xec,0xe8,0x3f,0x3a,0xba,0xc4,0x03,0xb0,0x01,0x26,0x8a,0x67,0x05, +/*00002530:*/0x50,0x80,0xcc,0x20,0xef,0xb2,0xc8,0xec,0xb0,0xff,0xb2,0xc6,0xe8,0x3f,0x01,0xb2, +/*00002540:*/0xc8,0x80,0x3e,0x63,0x04,0xb4,0x75,0x41,0xbe,0x4d,0x26,0xb9,0x40,0x00,0x33,0xdb, +/*00002550:*/0x8a,0xc3,0x9c,0xfa,0xe8,0x27,0x01,0x8b,0xfb,0xc1,0xef,0x03,0x83,0xe7,0x03,0x03, +/*00002560:*/0xfe,0x2e,0x8a,0x05,0x42,0xe8,0x16,0x01,0x2e,0x8a,0x45,0x04,0xe8,0x0f,0x01,0x2e, +/*00002570:*/0x8a,0x45,0x08,0xe8,0x08,0x01,0x9d,0xfe,0xc3,0x4a,0xe2,0xd4,0xba,0xc4,0x03,0x58, +/*00002580:*/0xef,0xe8,0x00,0x3a,0x83,0xc4,0x02,0x5d,0xc3,0x26,0x8a,0x47,0x2b,0xf6,0x06,0x89, +/*00002590:*/0x04,0x06,0x74,0x38,0xb9,0xf8,0x00,0xbf,0x51,0x43,0x3c,0x08,0x74,0x11,0xb9,0x40, +/*000025a0:*/0x00,0xbf,0x34,0x18,0x3c,0x38,0x74,0x07,0x3c,0x3f,0x74,0x03,0xbf,0x74,0x18,0x33, +/*000025b0:*/0xdb,0x8a,0xc3,0xfa,0xe8,0xc7,0x00,0x2e,0x8a,0x01,0x42,0xe8,0xc0,0x00,0xe8,0xbd, +/*000025c0:*/0x00,0xe8,0xba,0x00,0xfb,0xfe,0xc3,0x4a,0xe2,0xe7,0xeb,0xb0,0x3c,0x08,0x74,0x25, +/*000025d0:*/0x3c,0x38,0x74,0x2f,0x3c,0x3f,0x74,0x2b,0xb9,0x08,0x00,0x33,0xdb,0x51,0xb9,0x08, +/*000025e0:*/0x00,0xbf,0x51,0x44,0xf7,0xc3,0x10,0x00,0x74,0x03,0xbf,0x69,0x44,0xe8,0x69,0x00, +/*000025f0:*/0x59,0xe2,0xea,0xeb,0x87,0xbf,0x51,0x44,0xb9,0x00,0x01,0x33,0xdb,0xe8,0x59,0x00, +/*00002600:*/0xe9,0x79,0xff,0xb9,0x40,0x00,0x33,0xdb,0x51,0xe8,0x0d,0x00,0x8a,0xc3,0xe8,0x44, +/*00002610:*/0x65,0xfe,0xc3,0x59,0xe2,0xf2,0xe9,0x63,0xff,0x8b,0xfb,0xc1,0xef,0x02,0x83,0xe7, +/*00002620:*/0x0f,0x2e,0x8a,0xb5,0x3d,0x26,0x8b,0xfb,0xd1,0xef,0x83,0xe7,0x0f,0x2e,0x8a,0xad, +/*00002630:*/0x3d,0x26,0x8b,0xfb,0x83,0xe7,0x0f,0x2e,0x8a,0x8d,0x3d,0x26,0xc3,0x00,0x2a,0x00, +/*00002640:*/0x2a,0x00,0x2a,0x00,0x2a,0x15,0x3f,0x15,0x3f,0x15,0x3f,0x15,0x3f,0x00,0x2a,0x00, +/*00002650:*/0x3f,0x00,0x2a,0x00,0x3f,0x00,0x2a,0x00,0x3f,0x9c,0x8a,0xc3,0xfa,0xe8,0x1e,0x00, +/*00002660:*/0x2e,0x8a,0x05,0x42,0xe8,0x17,0x00,0x47,0x2e,0x8a,0x05,0xe8,0x10,0x00,0x47,0x2e, +/*00002670:*/0x8a,0x05,0xe8,0x09,0x00,0xfb,0x47,0xfe,0xc3,0x4a,0xe2,0xde,0x9d,0xc3,0xee,0xc3, +/*00002680:*/0xec,0xc3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x81,0xa5,0x81,0xbd,0x99, +/*00002690:*/0x81,0x7e,0x7c,0xfe,0xd6,0xba,0xc6,0xfe,0x7c,0x00,0xc6,0xee,0xfe,0xfe,0x7c,0x38, +/*000026a0:*/0x10,0x00,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x00,0x10,0x38,0x10,0xee,0xee,0x10, +/*000026b0:*/0x38,0x00,0x38,0x7c,0xfe,0xfe,0x6c,0x10,0x38,0x00,0x00,0x18,0x3c,0x7e,0x3c,0x18, +/*000026c0:*/0x00,0x00,0xff,0xe7,0xc3,0x81,0xc3,0xe7,0xff,0xff,0x00,0x18,0x3c,0x66,0x66,0x3c, +/*000026d0:*/0x18,0x00,0xff,0xe7,0xc3,0x99,0x99,0xc3,0xe7,0xff,0x1e,0x0e,0x1e,0x36,0x78,0xcc, +/*000026e0:*/0xcc,0x78,0x7e,0xc3,0xc3,0x7e,0x18,0x7e,0x18,0x18,0x1e,0x1a,0x1e,0x18,0x18,0x70, +/*000026f0:*/0xf0,0x60,0x3e,0x3e,0x36,0x36,0xf6,0x66,0x1e,0x0c,0xdb,0x3c,0x66,0xe7,0x66,0x3c, +/*00002700:*/0xdb,0x00,0x80,0xc0,0xf0,0xf8,0xf0,0xc0,0x80,0x00,0x02,0x06,0x1e,0x3e,0x1e,0x06, +/*00002710:*/0x02,0x00,0x18,0x3c,0x7e,0x18,0x7e,0x3c,0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x00, +/*00002720:*/0x66,0x00,0x7f,0xdb,0x7b,0x3b,0x1b,0x1b,0x1b,0x00,0x3c,0x66,0x38,0x6c,0x6c,0x38, +/*00002730:*/0xcc,0x78,0x00,0x00,0x00,0x00,0xfe,0xfe,0xfe,0x00,0x18,0x3c,0x7e,0x18,0x7e,0x3c, +/*00002740:*/0x18,0x7e,0x18,0x3c,0x7e,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x7e,0x3c, +/*00002750:*/0x18,0x00,0x00,0x18,0x1c,0xfe,0x1c,0x18,0x00,0x00,0x00,0x30,0x70,0xfe,0x70,0x30, +/*00002760:*/0x00,0x00,0x00,0x00,0xc0,0xc0,0xc0,0xfe,0x00,0x00,0x00,0x24,0x66,0xff,0x66,0x24, +/*00002770:*/0x00,0x00,0x00,0x10,0x38,0x7c,0x7c,0xfe,0x00,0x00,0x00,0xfe,0x7c,0x7c,0x38,0x10, +/*00002780:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x3c,0x18,0x18,0x00, +/*00002790:*/0x18,0x00,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x6c,0x6c,0xfe,0x6c,0xfe,0x6c, +/*000027a0:*/0x6c,0x00,0x18,0x7e,0xc0,0x7c,0x06,0xfc,0x18,0x00,0x00,0xc6,0x0c,0x18,0x30,0x60, +/*000027b0:*/0xc6,0x00,0x38,0x6c,0x38,0x76,0xcc,0xcc,0x76,0x00,0x18,0x18,0x30,0x00,0x00,0x00, +/*000027c0:*/0x00,0x00,0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00,0x60,0x30,0x18,0x18,0x18,0x30, +/*000027d0:*/0x60,0x00,0x00,0xee,0x7c,0xfe,0x7c,0xee,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18, +/*000027e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0xfe,0x00,0x00, +/*000027f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x00,0x06,0x0c,0x18,0x30,0x60,0xc0, +/*00002800:*/0x80,0x00,0x7c,0xc6,0xce,0xde,0xf6,0xe6,0x7c,0x00,0x18,0x78,0x18,0x18,0x18,0x18, +/*00002810:*/0x7e,0x00,0x7c,0xc6,0x0c,0x18,0x30,0x66,0xfe,0x00,0x7c,0xc6,0x06,0x3c,0x06,0xc6, +/*00002820:*/0x7c,0x00,0x0c,0x1c,0x3c,0x6c,0xfe,0x0c,0x0c,0x00,0xfe,0xc0,0xfc,0x06,0x06,0xc6, +/*00002830:*/0x7c,0x00,0x7c,0xc6,0xc0,0xfc,0xc6,0xc6,0x7c,0x00,0xfe,0xc6,0x06,0x0c,0x18,0x18, +/*00002840:*/0x18,0x00,0x7c,0xc6,0xc6,0x7c,0xc6,0xc6,0x7c,0x00,0x7c,0xc6,0xc6,0x7e,0x06,0xc6, +/*00002850:*/0x7c,0x00,0x00,0x1c,0x1c,0x00,0x00,0x1c,0x1c,0x00,0x00,0x18,0x18,0x00,0x00,0x18, +/*00002860:*/0x18,0x30,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x00,0x00,0x00,0xfe,0x00,0x00,0xfe, +/*00002870:*/0x00,0x00,0x60,0x30,0x18,0x0c,0x18,0x30,0x60,0x00,0x7c,0xc6,0x06,0x0c,0x18,0x00, +/*00002880:*/0x18,0x00,0x7c,0xc6,0xc6,0xde,0xdc,0xc0,0x7e,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6, +/*00002890:*/0xc6,0x00,0xfc,0x66,0x66,0x7c,0x66,0x66,0xfc,0x00,0x3c,0x66,0xc0,0xc0,0xc0,0x66, +/*000028a0:*/0x3c,0x00,0xf8,0x6c,0x66,0x66,0x66,0x6c,0xf8,0x00,0xfe,0xc2,0xc0,0xf8,0xc0,0xc2, +/*000028b0:*/0xfe,0x00,0xfe,0x62,0x60,0x7c,0x60,0x60,0xf0,0x00,0x7c,0xc6,0xc0,0xc0,0xde,0xc6, +/*000028c0:*/0x7c,0x00,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0x00,0x3c,0x18,0x18,0x18,0x18,0x18, +/*000028d0:*/0x3c,0x00,0x3c,0x18,0x18,0x18,0xd8,0xd8,0x70,0x00,0xc6,0xcc,0xd8,0xf0,0xd8,0xcc, +/*000028e0:*/0xc6,0x00,0xf0,0x60,0x60,0x60,0x60,0x62,0xfe,0x00,0xc6,0xee,0xfe,0xd6,0xd6,0xc6, +/*000028f0:*/0xc6,0x00,0xc6,0xe6,0xe6,0xf6,0xde,0xce,0xc6,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00002900:*/0x7c,0x00,0xfc,0x66,0x66,0x7c,0x60,0x60,0xf0,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xd6, +/*00002910:*/0x7c,0x06,0xfc,0xc6,0xc6,0xfc,0xd8,0xcc,0xc6,0x00,0x7c,0xc6,0xc0,0x7c,0x06,0xc6, +/*00002920:*/0x7c,0x00,0x7e,0x5a,0x18,0x18,0x18,0x18,0x3c,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00002930:*/0x7c,0x00,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x10,0x00,0xc6,0xc6,0xd6,0xd6,0xfe,0xee, +/*00002940:*/0xc6,0x00,0xc6,0x6c,0x38,0x38,0x38,0x6c,0xc6,0x00,0x66,0x66,0x66,0x3c,0x18,0x18, +/*00002950:*/0x3c,0x00,0xfe,0x86,0x0c,0x18,0x30,0x62,0xfe,0x00,0x7c,0x60,0x60,0x60,0x60,0x60, +/*00002960:*/0x7c,0x00,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x7c,0x0c,0x0c,0x0c,0x0c,0x0c, +/*00002970:*/0x7c,0x00,0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002980:*/0x00,0xff,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc, +/*00002990:*/0x7e,0x00,0xe0,0x60,0x7c,0x66,0x66,0x66,0xfc,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc6, +/*000029a0:*/0x7c,0x00,0x1c,0x0c,0x7c,0xcc,0xcc,0xcc,0x7e,0x00,0x00,0x00,0x7c,0xc6,0xfe,0xc0, +/*000029b0:*/0x7c,0x00,0x1c,0x36,0x30,0xfc,0x30,0x30,0x78,0x00,0x00,0x00,0x76,0xce,0xc6,0x7e, +/*000029c0:*/0x06,0x7c,0xe0,0x60,0x7c,0x66,0x66,0x66,0xe6,0x00,0x18,0x00,0x38,0x18,0x18,0x18, +/*000029d0:*/0x3c,0x00,0x0c,0x00,0x1c,0x0c,0x0c,0x0c,0xcc,0x78,0xe0,0x60,0x66,0x6c,0x78,0x6c, +/*000029e0:*/0xe6,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x1c,0x00,0x00,0x00,0x6c,0xfe,0xd6,0xd6, +/*000029f0:*/0xc6,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6, +/*00002a00:*/0x7c,0x00,0x00,0x00,0xdc,0x66,0x66,0x7c,0x60,0xf0,0x00,0x00,0x76,0xcc,0xcc,0x7c, +/*00002a10:*/0x0c,0x1e,0x00,0x00,0xdc,0x66,0x60,0x60,0xf0,0x00,0x00,0x00,0x7c,0xc0,0x7c,0x06, +/*00002a20:*/0x7c,0x00,0x30,0x30,0xfc,0x30,0x30,0x36,0x1c,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc, +/*00002a30:*/0x76,0x00,0x00,0x00,0xc6,0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xfe, +/*00002a40:*/0x6c,0x00,0x00,0x00,0xc6,0x6c,0x38,0x6c,0xc6,0x00,0x00,0x00,0xc6,0xc6,0xce,0x76, +/*00002a50:*/0x06,0x7c,0x00,0x00,0xfc,0x98,0x30,0x64,0xfc,0x00,0x0e,0x18,0x18,0x70,0x18,0x18, +/*00002a60:*/0x0e,0x00,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00,0x70,0x18,0x18,0x0e,0x18,0x18, +/*00002a70:*/0x70,0x00,0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x6c,0x6c, +/*00002a80:*/0xfe,0x00,0x3c,0x66,0xc0,0x66,0x3c,0x18,0xcc,0x78,0x00,0xc6,0x00,0xc6,0xc6,0xce, +/*00002a90:*/0x76,0x00,0x0e,0x00,0x7c,0xc6,0xfe,0xc0,0x7c,0x00,0x7c,0xc6,0x78,0x0c,0x7c,0xcc, +/*00002aa0:*/0x7e,0x00,0xc6,0x00,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0xe0,0x00,0x78,0x0c,0x7c,0xcc, +/*00002ab0:*/0x7e,0x00,0x38,0x38,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0x00,0x00,0x7c,0xc0,0x7c,0x18, +/*00002ac0:*/0x6c,0x38,0x7c,0xc6,0x7c,0xc6,0xfe,0xc0,0x7c,0x00,0xc6,0x00,0x7c,0xc6,0xfe,0xc0, +/*00002ad0:*/0x7c,0x00,0xe0,0x00,0x7c,0xc6,0xfe,0xc0,0x7c,0x00,0x66,0x00,0x38,0x18,0x18,0x18, +/*00002ae0:*/0x3c,0x00,0x7c,0xc6,0x38,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x38,0x18,0x18,0x18, +/*00002af0:*/0x3c,0x00,0xc6,0x38,0x6c,0xc6,0xfe,0xc6,0xc6,0x00,0x38,0x38,0x00,0x7c,0xc6,0xfe, +/*00002b00:*/0xc6,0x00,0x0e,0x00,0xfe,0xc0,0xf8,0xc0,0xfe,0x00,0x00,0x00,0x6c,0x9a,0x7e,0xd8, +/*00002b10:*/0x6e,0x00,0x7e,0xd8,0xd8,0xfe,0xd8,0xd8,0xde,0x00,0x7c,0xc6,0x00,0x7c,0xc6,0xc6, +/*00002b20:*/0x7c,0x00,0x00,0xc6,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x00,0xe0,0x00,0x7c,0xc6,0xc6, +/*00002b30:*/0x7c,0x00,0x7c,0xc6,0x00,0xc6,0xc6,0xce,0x76,0x00,0x00,0xe0,0x00,0xc6,0xc6,0xce, +/*00002b40:*/0x76,0x00,0x18,0x00,0x3c,0x18,0x18,0x18,0x3c,0x00,0xc6,0x38,0x6c,0xc6,0xc6,0x6c, +/*00002b50:*/0x38,0x00,0xc6,0x00,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x18,0x7e,0xd8,0xd8,0x7e, +/*00002b60:*/0x18,0x00,0x38,0x6c,0x60,0xf0,0x66,0xf6,0x6c,0x00,0xc3,0x66,0x3c,0x7e,0x18,0x3c, +/*00002b70:*/0x18,0x00,0x3e,0x63,0x38,0x0e,0x63,0x3e,0x00,0x1c,0x00,0x3e,0x61,0x3c,0x86,0x7c, +/*00002b80:*/0x00,0x1c,0x0e,0x00,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0x1c,0x00,0x38,0x18,0x18,0x18, +/*00002b90:*/0x3c,0x00,0x00,0x0e,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x00,0x0e,0x00,0xcc,0xcc,0xdc, +/*00002ba0:*/0x76,0x00,0x00,0xfc,0x00,0xbc,0x66,0x66,0xe6,0x00,0xfe,0x00,0xc6,0xe6,0xf6,0xce, +/*00002bb0:*/0xc6,0x00,0x3e,0x00,0x3e,0x60,0x67,0x63,0x3d,0x00,0x3e,0x00,0x76,0xce,0xc6,0x7e, +/*00002bc0:*/0x06,0x7c,0x18,0x00,0x18,0x30,0x60,0x66,0x3c,0x00,0x00,0x00,0x00,0x7c,0x60,0x60, +/*00002bd0:*/0x00,0x00,0x00,0x00,0x00,0x7c,0x0c,0x0c,0x00,0x00,0xc0,0xcc,0xd8,0x30,0x7c,0x36, +/*00002be0:*/0x0c,0x3e,0xc0,0xcc,0xd8,0x30,0x6c,0x3c,0x7e,0x0c,0x18,0x00,0x18,0x18,0x3c,0x3c, +/*00002bf0:*/0x18,0x00,0x00,0x36,0x6c,0xd8,0x6c,0x36,0x00,0x00,0x00,0xd8,0x6c,0x36,0x6c,0xd8, +/*00002c00:*/0x00,0x00,0x22,0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x55,0xaa,0x55,0xaa,0x55,0xaa, +/*00002c10:*/0x55,0xaa,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0x18,0x18,0x18,0x18,0x18,0x18, +/*00002c20:*/0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x18, +/*00002c30:*/0x18,0x18,0x36,0x36,0x36,0x36,0xf6,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0xfe,0x36, +/*00002c40:*/0x36,0x36,0x00,0x00,0xf8,0x18,0xf8,0x18,0x18,0x18,0x36,0x36,0xf6,0x06,0xf6,0x36, +/*00002c50:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0xfe,0x06,0xf6,0x36, +/*00002c60:*/0x36,0x36,0x36,0x36,0xf6,0x06,0xfe,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0xfe,0x00, +/*00002c70:*/0x00,0x00,0x18,0x18,0xf8,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x18, +/*00002c80:*/0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0xff,0x00, +/*00002c90:*/0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18, +/*00002ca0:*/0x18,0x18,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0xff,0x18, +/*00002cb0:*/0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x18,0x18,0x18,0x36,0x36,0x36,0x36,0x37,0x36, +/*00002cc0:*/0x36,0x36,0x36,0x36,0x37,0x30,0x3f,0x00,0x00,0x00,0x00,0x00,0x3f,0x30,0x37,0x36, +/*00002cd0:*/0x36,0x36,0x36,0x36,0xf7,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xf7,0x36, +/*00002ce0:*/0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x00,0x00,0xff,0x00,0xff,0x00, +/*00002cf0:*/0x00,0x00,0x36,0x36,0xf7,0x00,0xf7,0x36,0x36,0x36,0x18,0x18,0xff,0x00,0xff,0x00, +/*00002d00:*/0x00,0x00,0x36,0x36,0x36,0x36,0xff,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x18, +/*00002d10:*/0x18,0x18,0x00,0x00,0x00,0x00,0xff,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3f,0x00, +/*00002d20:*/0x00,0x00,0x18,0x18,0x1f,0x18,0x1f,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x1f,0x18, +/*00002d30:*/0x18,0x18,0x00,0x00,0x00,0x00,0x3f,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x36, +/*00002d40:*/0x36,0x36,0x18,0x18,0xff,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x00, +/*00002d50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x18,0x18,0xff,0xff,0xff,0xff,0xff,0xff, +/*00002d60:*/0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, +/*00002d70:*/0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0x00,0x00, +/*00002d80:*/0x00,0x00,0x00,0x00,0x66,0xdc,0xd8,0xdc,0x66,0x00,0x00,0x78,0xcc,0xf8,0xcc,0xc6, +/*00002d90:*/0xcc,0x00,0x00,0xfe,0x62,0x60,0x60,0x60,0xe0,0x00,0x00,0xfe,0x6c,0x6c,0x6c,0x6c, +/*00002da0:*/0x6c,0x00,0xfe,0xc6,0x60,0x30,0x60,0xc6,0xfe,0x00,0x00,0x7e,0xd8,0xcc,0xcc,0xd8, +/*00002db0:*/0x70,0x00,0x00,0x66,0x66,0x66,0x66,0x7c,0xc0,0x00,0x00,0x76,0xdc,0x18,0x18,0x18, +/*00002dc0:*/0x38,0x00,0xfe,0x38,0x6c,0xc6,0x6c,0x38,0xfe,0x00,0x38,0x6c,0xc6,0xfe,0xc6,0x6c, +/*00002dd0:*/0x38,0x00,0x38,0x6c,0xc6,0xc6,0x6c,0x6c,0xee,0x00,0x3e,0x60,0x38,0x66,0xc6,0xcc, +/*00002de0:*/0x78,0x00,0x00,0x00,0x7e,0xdb,0xdb,0x7e,0x00,0x00,0x06,0x7c,0xde,0xf6,0xe6,0x7c, +/*00002df0:*/0xc0,0x00,0x38,0x60,0xc0,0xf8,0xc0,0x60,0x38,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00002e00:*/0xc6,0x00,0x00,0xfe,0x00,0xfe,0x00,0xfe,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00, +/*00002e10:*/0x7e,0x00,0x30,0x18,0x0c,0x18,0x30,0x00,0x7e,0x00,0x0c,0x18,0x30,0x18,0x0c,0x00, +/*00002e20:*/0x7e,0x00,0x0c,0x1e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78, +/*00002e30:*/0x30,0x00,0x00,0x00,0x18,0x00,0x7e,0x00,0x18,0x00,0x00,0x76,0xdc,0x00,0x76,0xdc, +/*00002e40:*/0x00,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00, +/*00002e50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1f,0x18,0x18,0x18,0xf8,0x38, +/*00002e60:*/0x18,0x00,0xd8,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x70,0xd8,0x30,0xf8,0x00,0x00, +/*00002e70:*/0x00,0x00,0x00,0x00,0x7c,0x7c,0x7c,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002e80:*/0x00,0x00,0x1d,0x00,0x00,0x00,0x00,0x24,0x66,0xff,0x66,0x24,0x00,0x00,0x00,0x00, +/*00002e90:*/0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ea0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x81,0xa5,0x81,0x81,0xbd,0x99,0x81,0x81, +/*00002eb0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xfe,0xfe,0xd6,0xfe,0xfe,0xba,0xc6,0xfe, +/*00002ec0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0xee,0xfe,0xfe,0xfe,0xfe,0x7c,0x38, +/*00002ed0:*/0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x00, +/*00002ee0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x10,0x6c,0xee,0x6c,0x10, +/*00002ef0:*/0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x7c,0x7c,0xfe,0xfe,0xfe,0x6c,0x10, +/*00002f00:*/0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x00, +/*00002f10:*/0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xe7,0xc3,0xc3,0xc3,0xe7,0xff, +/*00002f20:*/0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x18,0x3c,0x66,0x66,0x66,0x3c,0x18, +/*00002f30:*/0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xe7,0xc3,0x99,0x99,0x99,0xc3,0xe7, +/*00002f40:*/0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1e,0x0e,0x1e,0x36,0x78,0xcc,0xcc,0xcc,0xcc, +/*00002f50:*/0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x66,0x66,0x66,0x3c,0x18,0x7e,0x18,0x18, +/*00002f60:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1a,0x1e,0x18,0x18,0x18,0x18,0x78,0xf8, +/*00002f70:*/0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x36,0x3e,0x36,0x36,0x76,0xf6,0x66,0x0e, +/*00002f80:*/0x1e,0x0c,0x00,0x00,0x00,0x00,0x00,0x18,0xdb,0x7e,0x3c,0x66,0x66,0x3c,0x7e,0xdb, +/*00002f90:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xe0,0xf0,0xfc,0xfe,0xfc,0xf0,0xe0, +/*00002fa0:*/0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0e,0x3e,0x7e,0xfe,0x7e,0x3e,0x0e, +/*00002fb0:*/0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x18,0x7e,0x3c, +/*00002fc0:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66, +/*00002fd0:*/0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xdb,0xdb,0xdb,0xdb,0x7b,0x1b,0x1b,0x1b, +/*00002fe0:*/0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0x60,0x7c,0xf6,0xde,0x7c,0x0c, +/*00002ff0:*/0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0xfe, +/*00003000:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x7e,0x3c,0x18, +/*00003010:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x7e,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003020:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x3c, +/*00003030:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0e,0xff,0x0e,0x0c,0x00, +/*00003040:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x70,0xfe,0x70,0x30,0x00, +/*00003050:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0xc0,0xc0,0xfe,0x00, +/*00003060:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x66,0xff,0x66,0x24,0x00, +/*00003070:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x38,0x7c,0x7c,0xfe,0xfe, +/*00003080:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0x7c,0x7c,0x7c,0x38,0x38,0x10, +/*00003090:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000030a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x18,0x18,0x00,0x18, +/*000030b0:*/0x18,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x14,0x00,0x00,0x00,0x00,0x00, +/*000030c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x6c,0x6c,0xfe,0x6c,0x6c,0xfe,0x6c,0x6c, +/*000030d0:*/0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7c,0xc6,0xc0,0x78,0x3c,0x06,0xc6, +/*000030e0:*/0x7c,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x66,0x0c,0x18,0x30,0x66, +/*000030f0:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0x38,0x30,0x76,0x7e,0xcc,0xcc,0xcc, +/*00003100:*/0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003110:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18, +/*00003120:*/0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x18, +/*00003130:*/0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x38,0xfe,0x38,0x6c,0x00, +/*00003140:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00, +/*00003150:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c, +/*00003160:*/0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00, +/*00003170:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00003180:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0, +/*00003190:*/0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xce,0xde,0xf6,0xe6,0xc6,0xc6, +/*000031a0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*000031b0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0x06,0x0c,0x18,0x30,0x60,0xc6, +/*000031c0:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0x06,0x06,0x3c,0x06,0x06,0x06,0xc6, +/*000031d0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1c,0x3c,0x6c,0xcc,0xcc,0xfe,0x0c,0x0c, +/*000031e0:*/0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc0,0xc0,0xc0,0xfc,0x06,0x06,0x06,0xc6, +/*000031f0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc0,0xfc,0xc6,0xc6,0xc6,0xc6, +/*00003200:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x30, +/*00003210:*/0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7c,0xc6,0xc6,0xc6,0xc6, +/*00003220:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0x7e,0x06,0x06,0xc6, +/*00003230:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c, +/*00003240:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c, +/*00003250:*/0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18, +/*00003260:*/0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0xfe,0x00,0x00, +/*00003270:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30, +/*00003280:*/0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0x0c,0x18,0x18,0x18,0x00,0x18, +/*00003290:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xde,0xde,0xde,0xdc,0xc0, +/*000032a0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6, +/*000032b0:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0x66, +/*000032c0:*/0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x66,0xc2,0xc0,0xc0,0xc0,0xc0,0xc2,0x66, +/*000032d0:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x6c,0x66,0x66,0x66,0x66,0x66,0x66,0x6c, +/*000032e0:*/0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x66,0x60,0x64,0x7c,0x64,0x60,0x60,0x66, +/*000032f0:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x66,0x60,0x64,0x7c,0x64,0x60,0x60,0x60, +/*00003300:*/0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc0,0xc0,0xc0,0xce,0xc6,0xc6, +/*00003310:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6, +/*00003320:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003330:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8, +/*00003340:*/0x70,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xcc,0xd8,0xf0,0xf0,0xd8,0xcc,0xc6, +/*00003350:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66, +/*00003360:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xee,0xee,0xfe,0xd6,0xd6,0xd6,0xc6, +/*00003370:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xe6,0xe6,0xf6,0xde,0xce,0xce,0xc6, +/*00003380:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00003390:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0x60, +/*000033a0:*/0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6, +/*000033b0:*/0x7c,0x06,0x00,0x00,0x00,0x00,0x00,0xfc,0x66,0x66,0x66,0x7c,0x78,0x6c,0x66,0x66, +/*000033c0:*/0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc0,0x70,0x1c,0x06,0x06,0xc6, +/*000033d0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x5a,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*000033e0:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*000033f0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38, +/*00003400:*/0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0xee,0xc6, +/*00003410:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0xc6, +/*00003420:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3c,0x18,0x18,0x18, +/*00003430:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc6,0x86,0x0c,0x18,0x30,0x60,0xc2,0xc6, +/*00003440:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60, +/*00003450:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06, +/*00003460:*/0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +/*00003470:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003480:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003490:*/0x00,0x00,0xff,0x00,0x00,0x00,0x18,0x18,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, +/*000034a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*000034b0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0x66, +/*000034c0:*/0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc0,0xc0,0xc6, +/*000034d0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x0c,0x0c,0x7c,0xcc,0xcc,0xcc,0xcc,0xcc, +/*000034e0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6, +/*000034f0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x36,0x30,0x30,0xfc,0x30,0x30,0x30,0x30, +/*00003500:*/0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xce,0xc6,0xc6,0xce,0x76, +/*00003510:*/0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0xe0,0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0x66, +/*00003520:*/0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18, +/*00003530:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c, +/*00003540:*/0xcc,0xcc,0x78,0x00,0x00,0x00,0x00,0xe0,0x60,0x60,0x66,0x66,0x6c,0x78,0x6c,0x66, +/*00003550:*/0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003560:*/0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0xfe,0xd6,0xd6,0xc6,0xc6, +/*00003570:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x66, +/*00003580:*/0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00003590:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x7c, +/*000035a0:*/0x60,0x60,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0x7c, +/*000035b0:*/0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x60,0x60,0x60,0x60, +/*000035c0:*/0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0x7c,0x06,0xc6, +/*000035d0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0xfc,0x30,0x30,0x30,0x30,0x36, +/*000035e0:*/0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc, +/*000035f0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0x6c,0x38, +/*00003600:*/0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe, +/*00003610:*/0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0x6c,0x38,0x6c,0xc6, +/*00003620:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xce,0x76, +/*00003630:*/0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x86,0x0c,0x18,0x30,0x62, +/*00003640:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18, +/*00003650:*/0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18, +/*00003660:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x18,0x18,0x18,0x0e,0x18,0x18,0x18,0x18, +/*00003670:*/0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003680:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x38,0x6c,0x6c,0xfe, +/*00003690:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x66,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x18, +/*000036a0:*/0x0c,0xcc,0x38,0x00,0x00,0x00,0x00,0xc6,0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce, +/*000036b0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6, +/*000036c0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0xcc,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*000036d0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*000036e0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*000036f0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0x38,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*00003700:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc0,0xc6,0x7c,0x18, +/*00003710:*/0x0c,0x6c,0x38,0x00,0x00,0x00,0x30,0x78,0xcc,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6, +/*00003720:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x00,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6, +/*00003730:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x0c,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6, +/*00003740:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18, +/*00003750:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x18,0x3c,0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18, +/*00003760:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18, +/*00003770:*/0x3c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6, +/*00003780:*/0xc6,0x00,0x00,0x00,0x00,0x38,0x6c,0x38,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6, +/*00003790:*/0xc6,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x00,0xfe,0x60,0x60,0x7c,0x60,0x60,0x60, +/*000037a0:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xdb,0x1b,0x7f,0xd8,0xd8,0xdf, +/*000037b0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0xd8,0xd8,0xd8,0xd8,0xfe,0xd8,0xd8,0xd8, +/*000037c0:*/0xde,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0xcc,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*000037d0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*000037e0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x0c,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*000037f0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x78,0xcc,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce, +/*00003800:*/0x76,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce, +/*00003810:*/0x76,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003820:*/0x3c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00003830:*/0x7c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00003840:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7c,0xc6,0xc0,0xc0,0xc6,0x7c,0x18, +/*00003850:*/0x18,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0x60,0x60,0xf0,0x60,0x60,0x60,0x66,0xf6, +/*00003860:*/0x6c,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x3c,0x18,0x7e,0x18,0x3c,0x18, +/*00003870:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x63,0x30,0x1c,0x06,0x63,0x63,0x3e, +/*00003880:*/0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x38,0x0e,0x63,0x3e, +/*00003890:*/0x00,0x1c,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc, +/*000038a0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18, +/*000038b0:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6, +/*000038c0:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x60,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xdc, +/*000038d0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x00,0xbc,0x66,0x66,0x66,0x66,0x66, +/*000038e0:*/0xe6,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x00,0xc6,0xc6,0xe6,0xf6,0xde,0xce,0xc6, +/*000038f0:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x21,0x1e,0x00,0x1e,0x33,0x60,0x60,0x67,0x63,0x33, +/*00003900:*/0x1d,0x00,0x00,0x00,0x00,0x00,0x42,0x3c,0x00,0x3b,0x66,0x66,0x66,0x3e,0x06,0x66, +/*00003910:*/0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x30,0x60,0xc6,0xc6, +/*00003920:*/0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x60,0x60,0x60, +/*00003930:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x06,0x06,0x06, +/*00003940:*/0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x62,0x66,0x6c,0x18,0x30,0x60,0xdc,0x36, +/*00003950:*/0x0c,0x18,0x3e,0x00,0x00,0x00,0x60,0x60,0x62,0x66,0x6c,0x18,0x36,0x6e,0xde,0x36, +/*00003960:*/0x7e,0x06,0x06,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x18,0x18,0x3c,0x3c,0x3c,0x3c, +/*00003970:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x6c,0xd8,0x6c,0x36,0x00, +/*00003980:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x6c,0x36,0x6c,0xd8,0x00, +/*00003990:*/0x00,0x00,0x00,0x00,0x00,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11, +/*000039a0:*/0x44,0x11,0x44,0x11,0x44,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa, +/*000039b0:*/0x55,0xaa,0x55,0xaa,0x55,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd, +/*000039c0:*/0x77,0xdd,0x77,0xdd,0x77,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*000039d0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0x18,0x18, +/*000039e0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x18,0x18,0x18, +/*000039f0:*/0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xf6,0x36,0x36,0x36, +/*00003a00:*/0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x36,0x36,0x36, +/*00003a10:*/0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0xf8,0x18,0xf8,0x18,0x18,0x18, +/*00003a20:*/0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36,0x36,0x36,0xf6,0x06,0xf6,0x36,0x36,0x36, +/*00003a30:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*00003a40:*/0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0xfe,0x06,0xf6,0x36,0x36,0x36, +/*00003a50:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xf6,0x06,0xfe,0x00,0x00,0x00, +/*00003a60:*/0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xfe,0x00,0x00,0x00, +/*00003a70:*/0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x00,0x00,0x00, +/*00003a80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x18,0x18,0x18, +/*00003a90:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x00,0x00,0x00, +/*00003aa0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,0x00,0x00,0x00, +/*00003ab0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x18,0x18,0x18, +/*00003ac0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x18,0x18, +/*00003ad0:*/0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00, +/*00003ae0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,0x18,0x18,0x18, +/*00003af0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x18,0x18,0x18, +/*00003b00:*/0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36, +/*00003b10:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3f,0x00,0x00,0x00, +/*00003b20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x30,0x37,0x36,0x36,0x36, +/*00003b30:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xf7,0x00,0xff,0x00,0x00,0x00, +/*00003b40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xf7,0x36,0x36,0x36, +/*00003b50:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36, +/*00003b60:*/0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00, +/*00003b70:*/0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x36,0xf7,0x00,0xf7,0x36,0x36,0x36, +/*00003b80:*/0x36,0x36,0x36,0x36,0x36,0x18,0x18,0x18,0x18,0x18,0xff,0x00,0xff,0x00,0x00,0x00, +/*00003b90:*/0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x00,0x00,0x00, +/*00003ba0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x18,0x18,0x18, +/*00003bb0:*/0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x36,0x36,0x36, +/*00003bc0:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x3f,0x00,0x00,0x00, +/*00003bd0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x00,0x00,0x00, +/*00003be0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x1f,0x18,0x18,0x18, +/*00003bf0:*/0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0x36,0x36,0x36, +/*00003c00:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x36,0x36,0x36, +/*00003c10:*/0x36,0x36,0x36,0x36,0x36,0x18,0x18,0x18,0x18,0x18,0xff,0x18,0xff,0x18,0x18,0x18, +/*00003c20:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x00,0x00,0x00, +/*00003c30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x18,0x18, +/*00003c40:*/0x18,0x18,0x18,0x18,0x18,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*00003c50:*/0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +/*00003c60:*/0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, +/*00003c70:*/0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +/*00003c80:*/0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +/*00003c90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0xd8,0xd8,0xd8,0xd8,0xdc, +/*00003ca0:*/0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xd8,0xfc,0xc6,0xc6,0xc6,0xc6, +/*00003cb0:*/0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x66,0x62,0x60,0x60,0x60,0x60,0x60,0x60, +/*00003cc0:*/0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x6c,0x6c,0x6c,0x6c,0x6c, +/*00003cd0:*/0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xc6,0x62,0x30,0x18,0x18,0x30,0x62,0xc6, +/*00003ce0:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0xd8,0xcc,0xcc,0xcc,0xd8, +/*00003cf0:*/0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x7c,0x60, +/*00003d00:*/0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x18,0x18,0x18,0x18, +/*00003d10:*/0x18,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x38,0x38,0x6c,0xc6,0xc6,0x6c,0x38,0x38, +/*00003d20:*/0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0x6c, +/*00003d30:*/0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x6c,0xc6,0xc6,0xc6,0xc6,0x6c,0x6c,0x6c, +/*00003d40:*/0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x60,0x60,0x3c,0x66,0xc6,0xc6,0xc6,0xcc, +/*00003d50:*/0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0xdb,0xdb,0xdb,0x7e,0x00, +/*00003d60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x7c,0xce,0xde,0xf6,0xf6,0x7c,0x60, +/*00003d70:*/0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x30,0x60,0x60,0x7c,0x60,0x60,0x30, +/*00003d80:*/0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6, +/*00003d90:*/0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe, +/*00003da0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00, +/*00003db0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x00,0x00, +/*00003dc0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x00,0x00, +/*00003dd0:*/0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x1e,0x1a,0x18,0x18,0x18,0x18, +/*00003de0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x58, +/*00003df0:*/0x78,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x7e,0x00,0x18,0x18, +/*00003e00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0xdc,0x00,0x76,0xdc, +/*00003e10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0x78,0x00,0x00,0x00,0x00,0x00, +/*00003e20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00, +/*00003e30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00, +/*00003e40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0x78, +/*00003e50:*/0x38,0x18,0x00,0x00,0x00,0x00,0x00,0xd8,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00, +/*00003e60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xd8,0x18,0x30,0x60,0xf8,0x00,0x00,0x00, +/*00003e70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e, +/*00003e80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003e90:*/0x00,0x00,0x00,0x00,0x00,0x90,0x95,0x2e,0x0b,0xdb,0x74,0x03,0xe9,0x3f,0x01,0x57, +/*00003ea0:*/0x32,0xc0,0xb9,0x40,0x00,0xf3,0xaa,0x5f,0xbb,0x44,0x92,0x26,0x89,0x1d,0x26,0x8c, +/*00003eb0:*/0x4d,0x02,0xe8,0x37,0x39,0x57,0xbe,0x49,0x04,0xb9,0x1e,0x00,0x83,0xc7,0x04,0xfc, +/*00003ec0:*/0x8a,0x04,0x26,0x88,0x05,0x46,0x47,0xe2,0xf7,0x5f,0xa0,0x84,0x04,0xfe,0xc0,0x26, +/*00003ed0:*/0x88,0x45,0x22,0xa1,0x85,0x04,0x26,0x89,0x45,0x23,0x57,0xe8,0x98,0x52,0x5f,0x26, +/*00003ee0:*/0x88,0x5d,0x25,0x26,0x88,0x7d,0x26,0x8a,0x1e,0x49,0x04,0x80,0xfb,0x13,0x7f,0x1d, +/*00003ef0:*/0x32,0xff,0xd1,0xe3,0x2e,0x8a,0x87,0x1c,0x92,0x32,0xe4,0x0a,0xc0,0x74,0x01,0x40, +/*00003f00:*/0x26,0x89,0x45,0x27,0x2e,0x8a,0x87,0x1d,0x92,0x26,0x88,0x45,0x29,0xa1,0x85,0x04, +/*00003f10:*/0x8a,0x16,0x84,0x04,0xfe,0xc2,0xf6,0xe2,0xb2,0x00,0x3d,0xc8,0x00,0x7e,0x15,0xb2, +/*00003f20:*/0x01,0x3d,0x5e,0x01,0x7e,0x0e,0xb2,0x02,0x3d,0x90,0x01,0x7e,0x07,0xb2,0x03,0x3d, +/*00003f30:*/0xe0,0x01,0x7e,0x00,0x26,0x88,0x55,0x2a,0x8a,0x26,0x87,0x04,0x8a,0xc4,0x24,0x01, +/*00003f40:*/0xc0,0xe0,0x04,0x80,0xe4,0x02,0xd0,0xe4,0x0a,0xe0,0x80,0xf4,0x10,0xa0,0x89,0x04, +/*00003f50:*/0x24,0x0a,0x0a,0xe0,0xe8,0x07,0x39,0xb2,0xc0,0xb0,0x30,0xee,0x42,0xec,0x24,0x08, +/*00003f60:*/0xc0,0xe0,0x02,0x0a,0xc4,0x0c,0x01,0x26,0x88,0x45,0x2d,0xb0,0x03,0x26,0x88,0x45, +/*00003f70:*/0x31,0xe8,0xea,0x38,0x1e,0x06,0x32,0xd2,0xc4,0x1e,0xa8,0x04,0x8c,0xc1,0x8c,0xce, +/*00003f80:*/0x3b,0xce,0x74,0x34,0x26,0xc5,0x77,0x04,0x8c,0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca, +/*00003f90:*/0x10,0x26,0xc5,0x77,0x0c,0x8c,0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca,0x08,0x26,0xc5, +/*00003fa0:*/0x77,0x08,0x8c,0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca,0x04,0x26,0xc5,0x77,0x10,0x8c, +/*00003fb0:*/0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca,0x01,0x07,0x1f,0x26,0x88,0x55,0x32,0xb0,0x03, +/*00003fc0:*/0xba,0xc4,0x03,0xe8,0x1c,0x38,0x8a,0xe0,0xc0,0xec,0x02,0x8a,0xd4,0x8a,0xf2,0xd0, +/*00003fd0:*/0xee,0x81,0xe2,0x04,0x04,0x25,0x03,0x03,0x0b,0xc2,0x26,0x89,0x45,0x2b,0x8b,0xec, +/*00003fe0:*/0xc6,0x46,0x1c,0x1b,0xe9,0xdb,0xdc,0x0a,0xc0,0x74,0x11,0xfe,0xc8,0x74,0x3a,0xfe, +/*00003ff0:*/0xc8,0x74,0x62,0x8b,0xec,0xc6,0x46,0x1c,0x00,0xe9,0xc6,0xdc,0xb8,0x20,0x00,0xf6, +/*00004000:*/0xc1,0x01,0x74,0x03,0x83,0xc0,0x60,0xf6,0xc1,0x02,0x74,0x03,0x83,0xc0,0x3a,0xf6, +/*00004010:*/0xc1,0x04,0x74,0x03,0x05,0x03,0x03,0x83,0xc0,0x3f,0xc1,0xe8,0x06,0x8b,0xec,0x89, +/*00004020:*/0x46,0x10,0xc6,0x46,0x1c,0x1c,0xe9,0x99,0xdc,0x8b,0xfb,0x83,0xc7,0x20,0xf6,0xc1, +/*00004030:*/0x01,0x74,0x03,0xe8,0x8a,0x00,0xf6,0xc1,0x02,0x74,0x03,0xe8,0x28,0x01,0xf6,0xc1, +/*00004040:*/0x04,0x75,0x02,0xeb,0x03,0xe8,0x5a,0x02,0x26,0x89,0x7f,0x06,0x8b,0xec,0xc6,0x46, +/*00004050:*/0x1c,0x1c,0xe9,0x6d,0xdc,0xf6,0xc1,0x01,0x74,0x03,0xe8,0x57,0x01,0xf6,0xc1,0x02, +/*00004060:*/0x74,0x03,0xe8,0xe6,0x01,0xf6,0xc1,0x04,0x74,0x03,0xe8,0x82,0x02,0xeb,0xdd,0x8a, +/*00004070:*/0xc4,0xee,0x42,0xec,0xaa,0xfe,0xc4,0x4a,0xe2,0xf5,0xc3,0xe8,0xd9,0x37,0xbd,0xc0, +/*00004080:*/0x03,0xb9,0x15,0x00,0x32,0xe4,0xec,0x87,0xea,0x8a,0xc4,0xee,0x42,0xec,0xaa,0xfe, +/*00004090:*/0xc4,0x4a,0x87,0xea,0xe2,0xf0,0xec,0x87,0xea,0xb0,0x20,0xee,0xc3,0x26,0x8a,0x05, +/*000040a0:*/0x88,0x04,0x47,0x46,0xe2,0xf7,0xc3,0x26,0x8a,0x25,0xef,0x47,0xfe,0xc0,0xe2,0xf7, +/*000040b0:*/0xc3,0xb2,0xc0,0x8a,0xc4,0xee,0x26,0x8a,0x05,0x47,0xfe,0xc4,0xee,0xe2,0xf4,0xc3, +/*000040c0:*/0x9c,0xfa,0x51,0x57,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x07,0x8b,0xf7,0xe8,0x78,0x37, +/*000040d0:*/0xec,0x26,0x88,0x44,0x01,0x26,0x89,0x54,0x41,0xb2,0xce,0xec,0x26,0x88,0x44,0x02, +/*000040e0:*/0xb2,0xcc,0xec,0x26,0x88,0x44,0x09,0xb2,0xca,0xec,0x26,0x88,0x44,0x04,0xb2,0xc4, +/*000040f0:*/0xec,0x26,0x88,0x04,0x83,0xc7,0x05,0xb9,0x04,0x00,0xb4,0x01,0xe8,0x70,0xff,0x26, +/*00004100:*/0x8a,0x04,0xee,0x52,0xe8,0x9e,0x15,0xb2,0x57,0xec,0x26,0x88,0x44,0x5f,0xe8,0xc4, +/*00004110:*/0x1d,0x26,0x8b,0x54,0x41,0x8b,0xfe,0x83,0xc7,0x46,0x32,0xe4,0xb9,0x19,0x00,0xe8, +/*00004120:*/0x4d,0xff,0x26,0x8a,0x44,0x01,0xee,0xe8,0x9d,0x1d,0x5a,0x8b,0xfe,0x83,0xc7,0x0a, +/*00004130:*/0x26,0x8b,0x54,0x41,0x32,0xe4,0xb9,0x19,0x00,0xe8,0x33,0xff,0x26,0x8a,0x44,0x01, +/*00004140:*/0xee,0xe8,0x37,0xff,0xb2,0xce,0x32,0xe4,0xb9,0x09,0x00,0xe8,0x21,0xff,0x26,0x8a, +/*00004150:*/0x44,0x02,0xee,0x52,0xe8,0x4e,0x15,0xb2,0x57,0x26,0x8a,0x44,0x5f,0xee,0x5a,0x5f, +/*00004160:*/0x59,0x83,0xc7,0x60,0x9d,0xc3,0x9c,0xfa,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x02, +/*00004170:*/0x51,0x57,0xe8,0x77,0x36,0xa0,0x10,0x04,0x24,0x30,0xaa,0xbe,0x49,0x04,0xb9,0x1e, +/*00004180:*/0x00,0xf3,0xa4,0xbe,0x84,0x04,0xb1,0x07,0xf3,0xa4,0xbe,0xa8,0x04,0xb1,0x04,0xf3, +/*00004190:*/0xa4,0xbe,0x14,0x00,0xb1,0x04,0xf3,0xa4,0xbe,0x74,0x00,0xb1,0x04,0xf3,0xa4,0xbe, +/*000041a0:*/0x7c,0x00,0xb1,0x04,0xf3,0xa4,0xbe,0x0c,0x01,0xb1,0x04,0xf3,0xa4,0x5f,0x59,0x83, +/*000041b0:*/0xc7,0x3a,0x9d,0xc3,0x9c,0xfa,0x26,0x8b,0x3f,0x03,0xfb,0x8b,0xf7,0x51,0xe8,0x06, +/*000041c0:*/0x1d,0x8b,0xfe,0x83,0xc7,0x05,0xba,0xc4,0x03,0xb8,0x00,0x01,0xef,0xb0,0x01,0xb9, +/*000041d0:*/0x04,0x00,0xe8,0xd2,0xfe,0x47,0xb2,0xc2,0x26,0x8a,0x44,0x09,0xee,0xb2,0xc4,0xb8, +/*000041e0:*/0x00,0x03,0xef,0x26,0x8a,0x04,0xee,0x26,0x8b,0x54,0x41,0xb8,0x11,0x00,0xef,0xb1, +/*000041f0:*/0x19,0x32,0xc0,0xe8,0xb1,0xfe,0x26,0x8a,0x44,0x01,0xee,0x57,0x52,0xe8,0xa5,0x14, +/*00004200:*/0xb2,0x57,0x52,0xe8,0xcf,0x1c,0x8b,0xfe,0x83,0xc7,0x46,0x26,0x8b,0x54,0x41,0xb8, +/*00004210:*/0x11,0x00,0xef,0xb1,0x19,0x32,0xc0,0xe8,0x8d,0xfe,0x26,0x8a,0x44,0x01,0xee,0x5a, +/*00004220:*/0x26,0x8a,0x44,0x5f,0xee,0x5a,0x5f,0x80,0xc2,0x06,0x26,0x8a,0x44,0x04,0xee,0xec, +/*00004230:*/0xb1,0x15,0x32,0xe4,0xe8,0x7a,0xfe,0xb0,0x20,0xee,0xb1,0x09,0x32,0xc0,0xb2,0xce, +/*00004240:*/0xe8,0x64,0xfe,0x26,0x8a,0x44,0x02,0xee,0x59,0x9d,0xc3,0x9c,0xfa,0x26,0x8b,0x7f, +/*00004250:*/0x02,0x03,0xfb,0x06,0x51,0xe8,0x94,0x35,0x26,0x8a,0x05,0x80,0x26,0x10,0x04,0xcf, +/*00004260:*/0x08,0x06,0x10,0x04,0x47,0xbe,0x49,0x04,0xb9,0x1e,0x00,0xe8,0x2f,0xfe,0xbe,0x84, +/*00004270:*/0x04,0xb1,0x07,0xe8,0x27,0xfe,0xbe,0xa8,0x04,0xb1,0x04,0xe8,0x1f,0xfe,0xbe,0x14, +/*00004280:*/0x00,0xb1,0x04,0xe8,0x17,0xfe,0xbe,0x74,0x00,0xb1,0x04,0xe8,0x0f,0xfe,0xbe,0x7c, +/*00004290:*/0x00,0xb1,0x04,0xe8,0x07,0xfe,0xbe,0x0c,0x01,0xb1,0x04,0xe8,0xff,0xfd,0x59,0x07, +/*000042a0:*/0x9d,0xc3,0x9c,0xfa,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x04,0xe8,0xaf,0x35,0xb2, +/*000042b0:*/0xc0,0xb0,0x34,0xee,0x42,0xec,0x26,0x88,0x05,0xe8,0xe9,0x13,0xb2,0x59,0xec,0xa8, +/*000042c0:*/0x20,0x74,0x27,0xba,0xc8,0x03,0xec,0x26,0x88,0x45,0x01,0x50,0x4a,0x4a,0xec,0x26, +/*000042d0:*/0x88,0x45,0x02,0x83,0xc7,0x03,0xb9,0x00,0x03,0x42,0x32,0xc0,0xee,0x42,0x42,0xe8, +/*000042e0:*/0x9e,0xe3,0xaa,0xe2,0xfa,0x58,0x4a,0xee,0x9d,0xc3,0xe8,0x0d,0x2d,0x9d,0xc3,0x9c, +/*000042f0:*/0xfa,0x26,0x8b,0x77,0x04,0x03,0xf3,0xe8,0x64,0x35,0xb2,0xc0,0xb0,0x34,0xee,0x26, +/*00004300:*/0x8a,0x04,0xee,0x55,0x83,0xec,0x02,0x8b,0xec,0xe8,0x5a,0x1c,0xe8,0x96,0x13,0xb2, +/*00004310:*/0x59,0xec,0xa8,0x20,0x74,0x2f,0xba,0xc6,0x03,0x26,0x8a,0x44,0x02,0xee,0x56,0x42, +/*00004320:*/0x42,0x83,0xc6,0x03,0x32,0xc0,0xee,0x42,0xb9,0x00,0x03,0x26,0x8a,0x04,0xe8,0x4d, +/*00004330:*/0xe3,0x46,0xe2,0xf7,0x5e,0xfe,0xca,0x26,0x8a,0x44,0x01,0xee,0xe8,0x45,0x1c,0x83, +/*00004340:*/0xc4,0x02,0x5d,0x9d,0xc3,0xe8,0xdd,0x2c,0xe8,0x39,0x1c,0x83,0xc4,0x02,0x5d,0x9d, +/*00004350:*/0xc3,0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x28,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38, +/*00004360:*/0x3f,0x00,0x05,0x08,0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20,0x24,0x28,0x2d,0x32,0x38, +/*00004370:*/0x3f,0x07,0x0c,0x10,0x15,0x1a,0x18,0x16,0x15,0x13,0x1c,0x25,0x2f,0x38,0x33,0x2e, +/*00004380:*/0x2a,0x25,0x27,0x29,0x2a,0x2c,0x23,0x19,0x10,0x23,0x25,0x27,0x2a,0x2c,0x2b,0x2a, +/*00004390:*/0x29,0x29,0x2d,0x32,0x37,0x3b,0x39,0x37,0x34,0x32,0x33,0x34,0x35,0x35,0x31,0x2c, +/*000043a0:*/0x27,0x2f,0x30,0x32,0x33,0x34,0x34,0x33,0x33,0x32,0x35,0x38,0x3a,0x3d,0x3c,0x3a, +/*000043b0:*/0x39,0x38,0x38,0x39,0x39,0x3a,0x37,0x34,0x31,0x03,0x05,0x07,0x09,0x0b,0x0b,0x0a, +/*000043c0:*/0x09,0x08,0x0d,0x11,0x15,0x19,0x17,0x15,0x13,0x11,0x11,0x12,0x13,0x14,0x0f,0x0b, +/*000043d0:*/0x07,0x10,0x10,0x12,0x13,0x14,0x13,0x13,0x13,0x12,0x14,0x16,0x18,0x1a,0x19,0x18, +/*000043e0:*/0x17,0x16,0x17,0x17,0x17,0x18,0x15,0x14,0x11,0x15,0x15,0x16,0x17,0x17,0x17,0x17, +/*000043f0:*/0x17,0x16,0x18,0x19,0x1a,0x1b,0x1b,0x1a,0x19,0x19,0x19,0x19,0x19,0x1a,0x18,0x17, +/*00004400:*/0x16,0x02,0x03,0x04,0x05,0x07,0x06,0x06,0x05,0x05,0x07,0x0a,0x0c,0x0e,0x0d,0x0c, +/*00004410:*/0x0b,0x09,0x0a,0x0a,0x0b,0x0b,0x09,0x06,0x04,0x09,0x09,0x0a,0x0b,0x0b,0x0b,0x0b, +/*00004420:*/0x0b,0x0a,0x0c,0x0d,0x0e,0x0f,0x0f,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0c,0x0b, +/*00004430:*/0x0a,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0e,0x0f,0x0f,0x0f,0x0f, +/*00004440:*/0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00004450:*/0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x00,0x2a,0x00,0x00,0x2a,0x2a,0x2a,0x00,0x00, +/*00004460:*/0x2a,0x00,0x2a,0x2a,0x15,0x00,0x2a,0x2a,0x2a,0x15,0x15,0x15,0x15,0x15,0x3f,0x15, +/*00004470:*/0x3f,0x15,0x15,0x3f,0x3f,0x3f,0x15,0x15,0x3f,0x15,0x3f,0x3f,0x3f,0x15,0x3f,0x3f, +/*00004480:*/0x3f,0x00,0x00,0x00,0x05,0x05,0x05,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e, +/*00004490:*/0x11,0x11,0x11,0x14,0x14,0x14,0x18,0x18,0x18,0x1c,0x1c,0x1c,0x20,0x20,0x20,0x24, +/*000044a0:*/0x24,0x24,0x28,0x28,0x28,0x2d,0x2d,0x2d,0x32,0x32,0x32,0x38,0x38,0x38,0x3f,0x3f, +/*000044b0:*/0x3f,0x00,0x00,0x3f,0x10,0x00,0x3f,0x1f,0x00,0x3f,0x2f,0x00,0x3f,0x3f,0x00,0x3f, +/*000044c0:*/0x3f,0x00,0x2f,0x3f,0x00,0x1f,0x3f,0x00,0x10,0x3f,0x00,0x00,0x3f,0x10,0x00,0x3f, +/*000044d0:*/0x1f,0x00,0x3f,0x2f,0x00,0x3f,0x3f,0x00,0x2f,0x3f,0x00,0x1f,0x3f,0x00,0x10,0x3f, +/*000044e0:*/0x00,0x00,0x3f,0x00,0x00,0x3f,0x10,0x00,0x3f,0x1f,0x00,0x3f,0x2f,0x00,0x3f,0x3f, +/*000044f0:*/0x00,0x2f,0x3f,0x00,0x1f,0x3f,0x00,0x10,0x3f,0x1f,0x1f,0x3f,0x27,0x1f,0x3f,0x2f, +/*00004500:*/0x1f,0x3f,0x37,0x1f,0x3f,0x3f,0x1f,0x3f,0x3f,0x1f,0x37,0x3f,0x1f,0x2f,0x3f,0x1f, +/*00004510:*/0x27,0x3f,0x1f,0x1f,0x3f,0x27,0x1f,0x3f,0x2f,0x1f,0x3f,0x37,0x1f,0x3f,0x3f,0x1f, +/*00004520:*/0x37,0x3f,0x1f,0x2f,0x3f,0x1f,0x27,0x3f,0x1f,0x1f,0x3f,0x1f,0x1f,0x3f,0x27,0x1f, +/*00004530:*/0x3f,0x2f,0x1f,0x3f,0x37,0x1f,0x3f,0x3f,0x1f,0x37,0x3f,0x1f,0x2f,0x3f,0x1f,0x27, +/*00004540:*/0x3f,0x2d,0x2d,0x3f,0x31,0x2d,0x3f,0x36,0x2d,0x3f,0x3a,0x2d,0x3f,0x3f,0x2d,0x3f, +/*00004550:*/0x3f,0x2d,0x3a,0x3f,0x2d,0x36,0x3f,0x2d,0x31,0x3f,0x2d,0x2d,0x3f,0x31,0x2d,0x3f, +/*00004560:*/0x36,0x2d,0x3f,0x3a,0x2d,0x3f,0x3f,0x2d,0x3a,0x3f,0x2d,0x36,0x3f,0x2d,0x31,0x3f, +/*00004570:*/0x2d,0x2d,0x3f,0x2d,0x2d,0x3f,0x31,0x2d,0x3f,0x36,0x2d,0x3f,0x3a,0x2d,0x3f,0x3f, +/*00004580:*/0x2d,0x3a,0x3f,0x2d,0x36,0x3f,0x2d,0x31,0x3f,0x00,0x00,0x1c,0x07,0x00,0x1c,0x0e, +/*00004590:*/0x00,0x1c,0x15,0x00,0x1c,0x1c,0x00,0x1c,0x1c,0x00,0x15,0x1c,0x00,0x0e,0x1c,0x00, +/*000045a0:*/0x07,0x1c,0x00,0x00,0x1c,0x07,0x00,0x1c,0x0e,0x00,0x1c,0x15,0x00,0x1c,0x1c,0x00, +/*000045b0:*/0x15,0x1c,0x00,0x0e,0x1c,0x00,0x07,0x1c,0x00,0x00,0x1c,0x00,0x00,0x1c,0x07,0x00, +/*000045c0:*/0x1c,0x0e,0x00,0x1c,0x15,0x00,0x1c,0x1c,0x00,0x15,0x1c,0x00,0x0e,0x1c,0x00,0x07, +/*000045d0:*/0x1c,0x0e,0x0e,0x1c,0x11,0x0e,0x1c,0x15,0x0e,0x1c,0x18,0x0e,0x1c,0x1c,0x0e,0x1c, +/*000045e0:*/0x1c,0x0e,0x18,0x1c,0x0e,0x15,0x1c,0x0e,0x11,0x1c,0x0e,0x0e,0x1c,0x11,0x0e,0x1c, +/*000045f0:*/0x15,0x0e,0x1c,0x18,0x0e,0x1c,0x1c,0x0e,0x18,0x1c,0x0e,0x15,0x1c,0x0e,0x11,0x1c, +/*00004600:*/0x0e,0x0e,0x1c,0x0e,0x0e,0x1c,0x11,0x0e,0x1c,0x15,0x0e,0x1c,0x18,0x0e,0x1c,0x1c, +/*00004610:*/0x0e,0x18,0x1c,0x0e,0x15,0x1c,0x0e,0x11,0x1c,0x14,0x14,0x1c,0x16,0x14,0x1c,0x18, +/*00004620:*/0x14,0x1c,0x1a,0x14,0x1c,0x1c,0x14,0x1c,0x1c,0x14,0x1a,0x1c,0x14,0x18,0x1c,0x14, +/*00004630:*/0x16,0x1c,0x14,0x14,0x1c,0x16,0x14,0x1c,0x18,0x14,0x1c,0x1a,0x14,0x1c,0x1c,0x14, +/*00004640:*/0x1a,0x1c,0x14,0x18,0x1c,0x14,0x16,0x1c,0x14,0x14,0x1c,0x14,0x14,0x1c,0x16,0x14, +/*00004650:*/0x1c,0x18,0x14,0x1c,0x1a,0x14,0x1c,0x1c,0x14,0x1a,0x1c,0x14,0x18,0x1c,0x14,0x16, +/*00004660:*/0x1c,0x00,0x00,0x10,0x04,0x00,0x10,0x08,0x00,0x10,0x0c,0x00,0x10,0x10,0x00,0x10, +/*00004670:*/0x10,0x00,0x0c,0x10,0x00,0x08,0x10,0x00,0x04,0x10,0x00,0x00,0x10,0x04,0x00,0x10, +/*00004680:*/0x08,0x00,0x10,0x0c,0x00,0x10,0x10,0x00,0x0c,0x10,0x00,0x08,0x10,0x00,0x04,0x10, +/*00004690:*/0x00,0x00,0x10,0x00,0x00,0x10,0x04,0x00,0x10,0x08,0x00,0x10,0x0c,0x00,0x10,0x10, +/*000046a0:*/0x00,0x0c,0x10,0x00,0x08,0x10,0x00,0x04,0x10,0x08,0x08,0x10,0x0a,0x08,0x10,0x0c, +/*000046b0:*/0x08,0x10,0x0e,0x08,0x10,0x10,0x08,0x10,0x10,0x08,0x0e,0x10,0x08,0x0c,0x10,0x08, +/*000046c0:*/0x0a,0x10,0x08,0x08,0x10,0x0a,0x08,0x10,0x0c,0x08,0x10,0x0e,0x08,0x10,0x10,0x08, +/*000046d0:*/0x0e,0x10,0x08,0x0c,0x10,0x08,0x0a,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x0a,0x08, +/*000046e0:*/0x10,0x0c,0x08,0x10,0x0e,0x08,0x10,0x10,0x08,0x0e,0x10,0x08,0x0c,0x10,0x08,0x0a, +/*000046f0:*/0x10,0x0b,0x0b,0x10,0x0c,0x0b,0x10,0x0d,0x0b,0x10,0x0f,0x0b,0x10,0x10,0x0b,0x10, +/*00004700:*/0x10,0x0b,0x0f,0x10,0x0b,0x0d,0x10,0x0b,0x0c,0x10,0x0b,0x0b,0x10,0x0c,0x0b,0x10, +/*00004710:*/0x0d,0x0b,0x10,0x0f,0x0b,0x10,0x10,0x0b,0x0f,0x10,0x0b,0x0d,0x10,0x0b,0x0c,0x10, +/*00004720:*/0x0b,0x0b,0x10,0x0b,0x0b,0x10,0x0c,0x0b,0x10,0x0d,0x0b,0x10,0x0f,0x0b,0x10,0x10, +/*00004730:*/0x0b,0x0f,0x10,0x0b,0x0d,0x10,0x0b,0x0c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00004740:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00004750:*/0x00,0x50,0x8a,0xe0,0xba,0xcc,0x03,0xec,0x24,0xfe,0x0a,0xc4,0xb2,0xc2,0xee,0x58, +/*00004760:*/0xc3,0xb0,0x01,0xe8,0xeb,0xff,0xb2,0xb4,0xe8,0x11,0x34,0xc3,0x32,0xc0,0xe8,0xe0, +/*00004770:*/0xff,0xb2,0xd4,0xe8,0x06,0x34,0xc3,0xe8,0x6b,0x44,0xb2,0xc0,0x86,0xc4,0xee,0xeb, +/*00004780:*/0x00,0xeb,0x00,0x86,0xc4,0xee,0xeb,0x00,0xeb,0x00,0xb0,0x20,0xee,0xc3,0x80,0x3e, +/*00004790:*/0x49,0x04,0x07,0x7e,0x16,0x26,0xf6,0x47,0x33,0x01,0x75,0x0f,0xb4,0x03,0x26,0xf6, +/*000047a0:*/0x47,0x09,0x01,0x75,0x02,0xb4,0x07,0x88,0x26,0x49,0x04,0xc3,0xba,0xb4,0x03,0x80, +/*000047b0:*/0x0e,0x87,0x04,0x02,0x26,0xf6,0x47,0x09,0x01,0x74,0x07,0xb2,0xd4,0x80,0x26,0x87, +/*000047c0:*/0x04,0xfd,0x89,0x16,0x63,0x04,0xc7,0x06,0x4e,0x04,0x00,0x00,0xc6,0x06,0x62,0x04, +/*000047d0:*/0x00,0xb9,0x08,0x00,0xbf,0x50,0x04,0x06,0x1e,0x07,0x33,0xc0,0xf3,0xab,0x07,0x26, +/*000047e0:*/0x8a,0x07,0x32,0xe4,0xa3,0x4a,0x04,0x26,0x8a,0x47,0x01,0xa2,0x84,0x04,0x26,0x8a, +/*000047f0:*/0x47,0x02,0xa3,0x85,0x04,0x26,0x8b,0x47,0x03,0xa3,0x4c,0x04,0x26,0x8b,0x47,0x14, +/*00004800:*/0x86,0xc4,0xa3,0x60,0x04,0xc3,0x80,0x0e,0x10,0x04,0x30,0xc7,0x06,0x63,0x04,0xb4, +/*00004810:*/0x03,0xb8,0x07,0x00,0xcd,0x42,0xc3,0x80,0x26,0x10,0x04,0xcf,0x80,0x0e,0x10,0x04, +/*00004820:*/0x20,0xc7,0x06,0x63,0x04,0xd4,0x03,0xb8,0x03,0x00,0xcd,0x42,0xc3,0x80,0x26,0x10, +/*00004830:*/0x04,0xcf,0x80,0x0e,0x10,0x04,0x10,0xb8,0x01,0x00,0xcd,0x42,0xc3,0x80,0x0e,0x10, +/*00004840:*/0x04,0x30,0xc7,0x06,0x63,0x04,0xb4,0x03,0xb8,0x07,0x00,0xcd,0x6d,0xc3,0x80,0x26, +/*00004850:*/0x10,0x04,0xcf,0x80,0x0e,0x10,0x04,0x20,0xc7,0x06,0x63,0x04,0xd4,0x03,0xb8,0x03, +/*00004860:*/0x00,0xcd,0x6d,0xc3,0x80,0x26,0x10,0x04,0xcf,0x80,0x0e,0x10,0x04,0x10,0xb8,0x01, +/*00004870:*/0x00,0xcd,0x6d,0xc3,0x6a,0x00,0x02,0x01,0x04,0x01,0x82,0x01,0x0d,0x01,0x0e,0x01, +/*00004880:*/0x0f,0x01,0x20,0x01,0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0xa2,0x01, +/*00004890:*/0xa3,0x01,0xa4,0x01,0xa5,0x01,0xa6,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01, +/*000048a0:*/0xb6,0x01,0xc2,0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0x00,0x01,0x83,0x01, +/*000048b0:*/0x84,0x01,0x85,0x01,0x86,0x01,0x01,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x21,0x01, +/*000048c0:*/0x03,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x22,0x01,0x05,0x01,0x16,0x01,0x17,0x01, +/*000048d0:*/0x18,0x01,0x23,0x01,0x07,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x24,0x01,0x09,0x01, +/*000048e0:*/0x0a,0x01,0x30,0x01,0xff,0xff,0x6a,0x00,0x6a,0x00,0x01,0x6a,0x29,0x64,0x0e,0x02, +/*000048f0:*/0x01,0x7a,0x00,0x01,0x6a,0x29,0x64,0x0e,0x04,0x01,0x55,0x00,0x01,0x55,0x2f,0x80, +/*00004900:*/0x10,0x82,0x01,0x6b,0xa0,0x02,0xe2,0x18,0x28,0x08,0x0d,0x01,0x4b,0xa0,0x03,0xe2, +/*00004910:*/0x18,0x28,0x08,0x0e,0x01,0x5b,0xa0,0x04,0xe2,0x18,0x28,0x08,0x0f,0x01,0x7b,0xa0, +/*00004920:*/0x05,0xe2,0x18,0x28,0x08,0x20,0x01,0x3b,0xa0,0x06,0xe2,0x18,0x28,0x08,0x92,0x01, +/*00004930:*/0x6c,0xa0,0x02,0xe3,0x1d,0x28,0x08,0x93,0x01,0x4c,0xa0,0x03,0xe3,0x1d,0x28,0x08, +/*00004940:*/0x94,0x01,0x5c,0xa0,0x04,0xe3,0x1d,0x28,0x08,0x95,0x01,0x7c,0xa0,0x05,0xe3,0x1d, +/*00004950:*/0x28,0x08,0x96,0x01,0x3c,0xa0,0x06,0xe3,0x1d,0x28,0x08,0xa2,0x01,0x6e,0xa0,0x02, +/*00004960:*/0xe5,0x11,0x32,0x10,0xa3,0x01,0x4e,0xa0,0x03,0xe5,0x11,0x32,0x10,0xa4,0x01,0x5e, +/*00004970:*/0xa0,0x04,0xe5,0x11,0x32,0x10,0xa5,0x01,0x7e,0xa0,0x05,0xe5,0x11,0x32,0x10,0xa6, +/*00004980:*/0x01,0x3e,0xa0,0x06,0xe5,0x11,0x32,0x10,0xb2,0x01,0x6d,0xa0,0x02,0xe4,0x17,0x40, +/*00004990:*/0x10,0xb3,0x01,0x4d,0xa0,0x03,0xe4,0x17,0x40,0x10,0xb4,0x01,0x5d,0xa0,0x04,0xe4, +/*000049a0:*/0x17,0x40,0x10,0xb5,0x01,0x7d,0xa0,0x05,0xe4,0x17,0x40,0x10,0xb6,0x01,0x3d,0xa0, +/*000049b0:*/0x06,0xe4,0x17,0x40,0x10,0xc2,0x01,0x60,0xa0,0x02,0xe6,0x18,0x50,0x0e,0xc3,0x01, +/*000049c0:*/0x40,0xa0,0x03,0xe6,0x18,0x50,0x0e,0xc4,0x01,0x50,0xa0,0x04,0xe6,0x18,0x50,0x0e, +/*000049d0:*/0xc5,0x01,0x70,0xa0,0x05,0xe6,0x18,0x50,0x0e,0xc6,0x01,0x30,0xa0,0x06,0xe6,0x18, +/*000049e0:*/0x50,0x0e,0x00,0x01,0x61,0xa0,0x02,0xe1,0x18,0x50,0x10,0x83,0x01,0x41,0xa0,0x03, +/*000049f0:*/0xe1,0x18,0x50,0x10,0x84,0x01,0x51,0xa0,0x04,0xe1,0x18,0x50,0x10,0x85,0x01,0x71, +/*00004a00:*/0xa0,0x05,0xe1,0x18,0x50,0x10,0x86,0x01,0x31,0xa0,0x06,0xe1,0x18,0x50,0x10,0x01, +/*00004a10:*/0x01,0x62,0xa0,0x02,0x12,0x1d,0x50,0x10,0x10,0x01,0x42,0xa0,0x03,0x12,0x1d,0x50, +/*00004a20:*/0x10,0x11,0x01,0x52,0xa0,0x04,0x12,0x1d,0x50,0x10,0x12,0x01,0x72,0xa0,0x05,0x12, +/*00004a30:*/0x1d,0x50,0x10,0x21,0x01,0x2f,0xa0,0x06,0x12,0x1d,0x50,0x10,0x03,0x01,0x63,0xa0, +/*00004a40:*/0x02,0x6a,0x29,0x64,0x0e,0x13,0x01,0x43,0xa0,0x03,0x6a,0x29,0x64,0x0e,0x14,0x01, +/*00004a50:*/0x53,0xa0,0x04,0x6a,0x29,0x64,0x0e,0x15,0x01,0x73,0xa0,0x05,0x6a,0x29,0x64,0x0e, +/*00004a60:*/0x22,0x01,0x3f,0xa0,0x06,0x6a,0x29,0x64,0x0e,0x05,0x01,0x64,0xa0,0x02,0x55,0x2f, +/*00004a70:*/0x80,0x10,0x16,0x01,0x44,0xa0,0x03,0x55,0x2f,0x80,0x10,0x17,0x01,0x54,0xa0,0x04, +/*00004a80:*/0x55,0x2f,0x80,0x10,0x18,0x01,0x74,0xa0,0x05,0x55,0x2f,0x80,0x10,0x23,0x01,0x34, +/*00004a90:*/0xa0,0x06,0x55,0x2f,0x80,0x10,0x07,0x01,0x66,0xa0,0x02,0x83,0x3f,0xa0,0x10,0x19, +/*00004aa0:*/0x01,0x46,0xa0,0x03,0x83,0x3f,0xa0,0x10,0x1a,0x01,0x56,0xa0,0x04,0x83,0x3f,0xa0, +/*00004ab0:*/0x10,0x1b,0x01,0x76,0xa0,0x05,0x83,0x3f,0xa0,0x10,0x24,0x01,0x36,0xa0,0x06,0x83, +/*00004ac0:*/0x3f,0xa0,0x10,0xff,0x01,0x65,0xa0,0x02,0x12,0x1d,0x50,0x10,0x09,0x01,0x23,0xf0, +/*00004ad0:*/0x01,0x00,0x18,0x84,0x10,0x0a,0x01,0x32,0xf0,0x01,0x00,0x2a,0x84,0x08,0x30,0x01, +/*00004ae0:*/0x33,0xf0,0x01,0x00,0x2b,0x84,0x08,0xff,0xff,0x90,0x56,0x45,0x53,0x41,0x00,0x02, +/*00004af0:*/0xa0,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x74,0x48,0x00,0x00,0x00,0x00,0x00,0x01, +/*00004b00:*/0x0c,0x4b,0x00,0x00,0x22,0x4b,0x00,0x00,0x27,0x4b,0x00,0x00,0x41,0x54,0x49,0x20, +/*00004b10:*/0x54,0x65,0x63,0x68,0x6e,0x6f,0x6c,0x6f,0x67,0x69,0x65,0x73,0x20,0x49,0x6e,0x63, +/*00004b20:*/0x2e,0x00,0x52,0x31,0x30,0x30,0x00,0x30,0x31,0x2e,0x30,0x30,0x00,0x1a,0x00,0x05, +/*00004b30:*/0x03,0x40,0x00,0x40,0x00,0x00,0xa0,0x00,0xa0,0xec,0x4f,0x00,0x00,0x80,0x00,0x00, +/*00004b40:*/0x04,0x00,0x03,0x08,0x10,0x04,0x04,0x01,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +/*00004b50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e, +/*00004b60:*/0xff,0x36,0xc0,0x10,0xeb,0x05,0x2e,0xff,0x36,0xbe,0x10,0x3c,0x16,0x72,0x01,0xc3, +/*00004b70:*/0xfc,0x32,0xe4,0xd1,0xe0,0x93,0x2e,0xff,0xa7,0x18,0x56,0x8b,0xd8,0x1e,0x57,0x56, +/*00004b80:*/0x53,0x51,0x52,0xb9,0x80,0x00,0xba,0x14,0x00,0x66,0x26,0x81,0x3d,0x56,0x42,0x45, +/*00004b90:*/0x32,0x75,0x06,0xb9,0x00,0x01,0xba,0x22,0x00,0x57,0x33,0xc0,0xf3,0xab,0x5f,0x57, +/*00004ba0:*/0x8c,0xc8,0x8e,0xd8,0x8b,0xca,0xbe,0xea,0x4a,0xfc,0xf3,0xa4,0x5f,0xe8,0x9d,0x26, +/*00004bb0:*/0x26,0x89,0x45,0x12,0x26,0x8c,0x4d,0x08,0x26,0x8c,0x4d,0x10,0x81,0xfa,0x22,0x00, +/*00004bc0:*/0x75,0x7a,0x57,0x8b,0xc7,0x05,0x00,0x01,0x26,0x8b,0x75,0x06,0x26,0x89,0x45,0x06, +/*00004bd0:*/0x26,0x8c,0x45,0x08,0x8b,0xf8,0xe8,0xc0,0x03,0x8b,0xc7,0x5f,0x57,0x26,0x8b,0x75, +/*00004be0:*/0x16,0x26,0x89,0x45,0x16,0x26,0x8c,0x45,0x18,0x8b,0xf8,0xe8,0xab,0x03,0x8b,0xc7, +/*00004bf0:*/0x5f,0x57,0x26,0x8b,0x75,0x1a,0x26,0x89,0x45,0x1a,0x26,0x8c,0x45,0x1c,0x8b,0xf8, +/*00004c00:*/0xe8,0x96,0x03,0x8b,0xc7,0x5f,0x57,0x26,0x8b,0x75,0x1e,0x26,0x89,0x45,0x1e,0x26, +/*00004c10:*/0x8c,0x45,0x20,0x8b,0xf8,0xe8,0x81,0x03,0x5f,0x8b,0xc7,0x83,0xc0,0x22,0x26,0x8b, +/*00004c20:*/0x75,0x0e,0x26,0x89,0x45,0x0e,0x26,0x8c,0x45,0x10,0x8b,0xf8,0x8b,0x04,0x26,0x89, +/*00004c30:*/0x05,0x83,0xc6,0x02,0x83,0xc7,0x02,0x83,0xf8,0xff,0x75,0xf0,0x5a,0x59,0x5b,0x5e, +/*00004c40:*/0x5f,0x1f,0xb8,0x4f,0x00,0xc3,0x8b,0xd8,0x52,0x51,0x53,0x56,0x57,0x1e,0x55,0x80, +/*00004c50:*/0xe5,0x3f,0x57,0x51,0x33,0xc0,0xb9,0x80,0x00,0xf3,0xab,0x59,0x5f,0x0e,0x1f,0xe8, +/*00004c60:*/0xe1,0x02,0xe8,0xf1,0x02,0x0b,0xc0,0x75,0x05,0xb4,0x01,0xe9,0x95,0x01,0x57,0x56, +/*00004c70:*/0x8d,0x36,0x2d,0x4b,0xb9,0x32,0x00,0xf3,0xa4,0x5e,0x5f,0x06,0x1f,0x0a,0xc0,0x74, +/*00004c80:*/0x03,0x80,0x0d,0x01,0x0b,0xdb,0x0f,0x84,0x6e,0x01,0x2e,0xa1,0x52,0x56,0x89,0x45, +/*00004c90:*/0x08,0x89,0x45,0x0a,0xe8,0xd9,0xd5,0x74,0x05,0xc7,0x45,0x02,0x07,0x00,0x8c,0x4d, +/*00004ca0:*/0x0e,0x89,0x5d,0x14,0xfe,0xc2,0x32,0xf6,0x8b,0xda,0xc1,0xe3,0x03,0x89,0x5d,0x12, +/*00004cb0:*/0x2e,0x8a,0x6c,0x04,0x2e,0x8a,0x44,0x08,0x88,0x45,0x17,0x2e,0x80,0x7c,0x03,0xf0, +/*00004cc0:*/0x75,0x4e,0xd1,0xe2,0x89,0x55,0x10,0x33,0xc0,0x88,0x45,0x1d,0xc6,0x45,0x1b,0x00, +/*00004cd0:*/0xc7,0x05,0x0f,0x00,0xc6,0x45,0x02,0x06,0x88,0x45,0x03,0xc6,0x45,0x18,0x01,0x89, +/*00004ce0:*/0x45,0x0a,0x2e,0xa1,0x56,0x56,0x89,0x45,0x08,0xb1,0x03,0x8b,0x45,0x12,0xd3,0xe8, +/*00004cf0:*/0x89,0x45,0x12,0x8b,0x45,0x14,0x8a,0x4d,0x17,0x40,0xf6,0xf1,0x89,0x45,0x14,0x33, +/*00004d00:*/0xc0,0x89,0x45,0x04,0x89,0x45,0x06,0x89,0x45,0x0e,0x89,0x45,0x0c,0xe9,0xf1,0x00, +/*00004d10:*/0x80,0xfd,0x01,0x7e,0x6f,0xc6,0x45,0x18,0x01,0xb4,0x04,0xb0,0x08,0x8b,0xd3,0x80, +/*00004d20:*/0xfd,0x02,0x7e,0x5a,0xb4,0x06,0x03,0xd3,0xb0,0x0f,0xc6,0x45,0x1f,0x05,0xc6,0x45, +/*00004d30:*/0x21,0x05,0xc6,0x45,0x23,0x05,0xc6,0x45,0x20,0x0a,0xc6,0x45,0x22,0x05,0xc6,0x45, +/*00004d40:*/0x24,0x00,0x80,0xfd,0x03,0x7e,0x37,0xb0,0x10,0xc6,0x45,0x21,0x06,0xc6,0x45,0x20, +/*00004d50:*/0x0b,0xc6,0x45,0x22,0x05,0x80,0xfd,0x04,0x7e,0x24,0x03,0xd3,0xb0,0x18,0xc6,0x45, +/*00004d60:*/0x1f,0x08,0xc6,0x45,0x21,0x08,0xc6,0x45,0x23,0x08,0xc6,0x45,0x20,0x10,0xc6,0x45, +/*00004d70:*/0x22,0x08,0x83,0x25,0xfb,0x80,0xfd,0x05,0x7e,0x04,0x03,0xd3,0xb0,0x20,0x88,0x45, +/*00004d80:*/0x19,0x88,0x65,0x1b,0x89,0x55,0x10,0x8b,0xc2,0xf7,0x65,0x14,0x0b,0xc0,0x74,0x01, +/*00004d90:*/0x42,0xe8,0xb9,0x24,0x80,0x7d,0x19,0x04,0x75,0x06,0xc1,0xe2,0x02,0xb8,0x10,0x00, +/*00004da0:*/0x53,0x32,0xff,0x8a,0xda,0x33,0xd2,0xf7,0xf3,0x8b,0xd3,0x5b,0x0b,0xc0,0x74,0x48, +/*00004db0:*/0xfe,0xc8,0x88,0x45,0x1d,0x80,0x7d,0x19,0x04,0x7e,0x3d,0x81,0x0d,0x80,0x00,0x50, +/*00004dc0:*/0x53,0x51,0x52,0xe8,0xcf,0x24,0xc1,0xe0,0x04,0x89,0x45,0x2a,0x8b,0xd8,0x8b,0x45, +/*00004dd0:*/0x14,0x8b,0x4d,0x10,0xf7,0xe1,0x03,0xda,0x89,0x45,0x2c,0x89,0x5d,0x2e,0xc1,0xe8, +/*00004de0:*/0x0a,0xc1,0xca,0x0a,0x83,0xe2,0xc0,0x0b,0xd0,0xe8,0x61,0x24,0xc1,0xe0,0x06,0x2b, +/*00004df0:*/0xc2,0x89,0x45,0x30,0x5a,0x59,0x5b,0x58,0x80,0x7d,0x19,0x04,0x74,0x03,0x83,0x0d, +/*00004e00:*/0x20,0x32,0xe4,0xb0,0x4f,0x5d,0x1f,0x5f,0x5e,0x5b,0x59,0x5a,0xc3,0x8b,0xd8,0x06, +/*00004e10:*/0x1e,0x57,0x56,0x52,0x51,0x55,0x53,0x0e,0x1f,0x8b,0xcb,0x8a,0xc7,0x24,0x80,0x80, +/*00004e20:*/0xe5,0x3f,0x83,0xf9,0x13,0x77,0x05,0x0a,0xc1,0xe9,0xb8,0x00,0xe8,0xa2,0x01,0xe8, +/*00004e30:*/0x11,0x01,0x83,0x3c,0xff,0x0f,0x84,0xb4,0x00,0xf6,0xc7,0x40,0x74,0x08,0x80,0x7c, +/*00004e40:*/0x04,0x01,0x0f,0x84,0xa7,0x00,0x8a,0x64,0x03,0x8a,0xef,0x80,0xe5,0x80,0x0a,0xe4, +/*00004e50:*/0x75,0x17,0x8a,0x44,0x02,0x8a,0xe5,0x8b,0x4c,0x04,0x0a,0xcc,0x56,0xe8,0xd1,0xd3, +/*00004e60:*/0x5e,0x0b,0xc0,0x0f,0x85,0x86,0x00,0xeb,0x2a,0x80,0xfc,0xa0,0x74,0x07,0x8a,0x44, +/*00004e70:*/0x02,0x0a,0xc5,0xeb,0x6f,0x51,0x8b,0x4c,0x04,0xe8,0xfd,0x00,0x59,0x0a,0xc0,0x74, +/*00004e80:*/0x6c,0xb8,0x62,0x00,0x0a,0xc5,0xe8,0xeb,0xcd,0x33,0xff,0x8b,0x4c,0x04,0xb0,0x00, +/*00004e90:*/0xe8,0x70,0xc5,0x58,0x50,0xe8,0xb6,0xd3,0xe8,0x51,0x29,0x0e,0x07,0x26,0x8a,0x44, +/*00004ea0:*/0x02,0xa2,0x49,0x04,0x26,0x8a,0x44,0x06,0xa2,0x84,0x04,0x32,0xe4,0x26,0x8a,0x44, +/*00004eb0:*/0x07,0xa3,0x4a,0x04,0x26,0x8a,0x44,0x08,0xa3,0x85,0x04,0xbb,0x95,0x2e,0x83,0xf8, +/*00004ec0:*/0x10,0x74,0x17,0x83,0xf8,0x0e,0x75,0x0f,0x06,0xe8,0x8f,0x41,0x8c,0x06,0x0e,0x01, +/*00004ed0:*/0x89,0x2e,0x0c,0x01,0x07,0xeb,0x0b,0xbb,0x82,0x26,0x8c,0x0e,0x0e,0x01,0x89,0x1e, +/*00004ee0:*/0x0c,0x01,0xeb,0x05,0x32,0xe4,0xe8,0x8b,0xcd,0x32,0xe4,0xeb,0x02,0xb4,0x01,0xb0, +/*00004ef0:*/0x4f,0x5b,0x5d,0x59,0x5a,0x5e,0x5f,0x1f,0x07,0xc3,0xb8,0x00,0x0f,0xe8,0x74,0xcd, +/*00004f00:*/0x1e,0x56,0x50,0x24,0x7f,0x0e,0x1f,0x8d,0x36,0xe6,0x48,0x8a,0xd8,0xb4,0x01,0x83, +/*00004f10:*/0x3c,0xff,0x74,0x0c,0x38,0x5c,0x02,0x74,0x05,0x83,0xc6,0x09,0xeb,0xf1,0x8b,0x1c, +/*00004f20:*/0x32,0xe4,0x5e,0xf7,0xc6,0x80,0x00,0x74,0x04,0x81,0xcb,0x00,0x80,0xe8,0x33,0xd3, +/*00004f30:*/0x74,0x04,0x81,0xcb,0x00,0x40,0x5e,0x1f,0xb0,0x4f,0xc3,0x8b,0xd8,0xe8,0xb0,0x00, +/*00004f40:*/0xb0,0x4f,0xc3,0x8d,0x36,0xe6,0x48,0x83,0x3c,0xff,0x74,0x09,0x39,0x0c,0x74,0x05, +/*00004f50:*/0x83,0xc6,0x09,0xeb,0xf2,0xc3,0x33,0xc0,0x83,0x3c,0xff,0x74,0x3b,0x80,0x7c,0x03, +/*00004f60:*/0xf0,0x75,0x13,0x8a,0x54,0x07,0xfe,0xca,0x8a,0x44,0x06,0xfe,0xc0,0xf6,0x64,0x08, +/*00004f70:*/0x48,0x8b,0xd8,0xb0,0x80,0xc3,0x8b,0x4c,0x04,0x57,0x56,0x06,0x1e,0x83,0xec,0x3e, +/*00004f80:*/0x8b,0xec,0xe8,0x79,0xb7,0x8a,0x46,0x02,0x8b,0x5e,0x26,0x8a,0x56,0x07,0x8a,0x66, +/*00004f90:*/0x3d,0x83,0xc4,0x3e,0x1f,0x07,0x5e,0x5f,0xc3,0x8a,0x04,0x26,0x88,0x05,0x46,0x47, +/*00004fa0:*/0x3c,0x00,0x75,0xf5,0xc3,0xbb,0x52,0x53,0x2e,0x8e,0x1e,0x58,0x56,0x2e,0x8b,0x16, +/*00004fb0:*/0x4a,0x01,0x89,0x57,0x08,0x2e,0x8b,0x16,0x46,0x01,0x89,0x57,0x0a,0x2e,0x03,0x5f, +/*00004fc0:*/0x06,0xe8,0xe1,0x06,0x83,0x3f,0xff,0x74,0x07,0x88,0x77,0x01,0x43,0x43,0xe2,0xf4, +/*00004fd0:*/0xc3,0x50,0x53,0xbb,0x28,0x02,0xe8,0xd3,0x07,0x24,0x7f,0xe8,0x29,0x07,0xbb,0x00, +/*00004fe0:*/0x0b,0xe8,0xc8,0x07,0x0c,0x01,0xe8,0x1e,0x07,0x5b,0x58,0xc3,0xe8,0x01,0x00,0xcb, +/*00004ff0:*/0xe8,0x70,0xd2,0x74,0x03,0xb4,0x03,0xc3,0xe8,0x75,0xd2,0x74,0x10,0x0a,0xff,0x75, +/*00005000:*/0x0c,0x50,0x53,0x52,0x80,0xf3,0x01,0xe8,0x03,0x00,0x5a,0x5b,0x58,0x8b,0xc2,0xe8, +/*00005010:*/0x93,0x06,0x50,0xb2,0x54,0xe8,0x71,0x06,0xa8,0x08,0x58,0x74,0x2f,0xb2,0x38,0x0a, +/*00005020:*/0xdb,0x74,0x0a,0xb2,0x3c,0x80,0xfb,0x01,0x74,0x03,0xb4,0x01,0xc3,0x0a,0xff,0x75, +/*00005030:*/0x0c,0x50,0xd1,0xe0,0xef,0x42,0x42,0x40,0xef,0x5a,0x32,0xe4,0xc3,0x80,0xff,0x01, +/*00005040:*/0x75,0xe8,0xe8,0x4b,0x06,0xd1,0xe8,0x32,0xe4,0x8b,0xd0,0xc3,0xb2,0x38,0x0a,0xdb, +/*00005050:*/0x74,0x0a,0xb2,0x3c,0x80,0xfb,0x01,0x74,0x03,0xb4,0x01,0xc3,0x0a,0xff,0x75,0x11, +/*00005060:*/0x50,0xc1,0xe0,0x03,0xe8,0x30,0x06,0xef,0x42,0x42,0x04,0x04,0xef,0x5a,0x32,0xe4, +/*00005070:*/0xc3,0x80,0xff,0x01,0x75,0xe3,0xe8,0x17,0x06,0xc1,0xe8,0x03,0x32,0xe4,0x8b,0xd0, +/*00005080:*/0xc3,0x8b,0xd8,0xf6,0xc1,0x0f,0x74,0x70,0x8a,0xc2,0x3c,0x02,0x77,0x6a,0x75,0x17, +/*00005090:*/0xf6,0xc1,0x08,0x74,0x12,0x60,0x06,0x1e,0x06,0x1f,0x32,0xc0,0x2e,0x8e,0x06,0x54, +/*000050a0:*/0x56,0xe8,0x74,0x23,0x1f,0x07,0x61,0x3c,0x01,0x75,0x15,0x60,0x8b,0xfb,0xb8,0x04, +/*000050b0:*/0x4f,0x32,0xd2,0xe8,0xbe,0xcb,0x8b,0xcb,0xc1,0xe1,0x05,0x33,0xc0,0xf3,0xab,0x61, +/*000050c0:*/0x50,0xb4,0x1c,0xe8,0xae,0xcb,0x58,0xf6,0xc1,0x08,0x74,0x28,0x0a,0xc0,0x75,0x06, +/*000050d0:*/0x81,0xc3,0x5d,0x00,0xeb,0x1e,0xfe,0xc8,0x75,0x16,0x57,0x33,0xff,0x26,0x87,0x7f, +/*000050e0:*/0x06,0x1e,0x32,0xc0,0x2e,0x8e,0x1e,0x54,0x56,0xe8,0x92,0x22,0x1f,0x5f,0xeb,0x04, +/*000050f0:*/0xfe,0xc8,0x75,0x04,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b,0xd8,0xe8,0x00, +/*00005100:*/0xd2,0x75,0x04,0xb8,0x4f,0x02,0xc3,0x3c,0x03,0x0f,0x87,0xd1,0x00,0xa8,0x01,0x75, +/*00005110:*/0x4f,0x0a,0xc0,0x74,0x0e,0xe8,0xc8,0x21,0x0f,0xb6,0xd8,0x8b,0xc1,0x33,0xd2,0xf7, +/*00005120:*/0xf3,0x8b,0xc8,0x83,0xc1,0x07,0xc1,0xe9,0x03,0x41,0x80,0xe1,0xfe,0x53,0xbb,0x00, +/*00005130:*/0x02,0xe8,0x7d,0x06,0x5b,0xfe,0xc0,0x32,0xe4,0x3b,0xc1,0x76,0x02,0x8b,0xc8,0x81, +/*00005140:*/0xf9,0xfc,0x03,0x7e,0x04,0xb8,0x4f,0x02,0xc3,0x1e,0xe8,0x9f,0x26,0x89,0x0e,0x4a, +/*00005150:*/0x04,0x1f,0x53,0xbb,0x2c,0x02,0x66,0x0f,0xb7,0xc1,0xe8,0x1c,0x06,0x5b,0xeb,0x44, +/*00005160:*/0xa8,0x02,0x74,0x40,0x53,0xbb,0x08,0x02,0xe8,0x85,0x06,0x5b,0x25,0xff,0x07,0x40, +/*00005170:*/0x8b,0xd8,0xb9,0xfc,0x03,0xc1,0xe1,0x03,0x53,0x51,0xe8,0x63,0x21,0x32,0xe4,0xf7, +/*00005180:*/0xe1,0x66,0x33,0xdb,0x8b,0xd8,0xe8,0xc4,0x20,0x66,0xc1,0xe0,0x10,0x66,0x33,0xd2, +/*00005190:*/0x66,0xf7,0xf3,0x66,0x33,0xd2,0x59,0x5b,0x66,0x3b,0xc3,0x8b,0xc1,0x73,0x10,0x83, +/*000051a0:*/0xe9,0x20,0xeb,0xd4,0x1e,0xe8,0x44,0x26,0xa1,0x4a,0x04,0x1f,0xc1,0xe0,0x03,0x8b, +/*000051b0:*/0xc8,0xe8,0x2c,0x21,0x32,0xe4,0xf7,0xe1,0x66,0x33,0xdb,0x8b,0xd8,0xe8,0x8d,0x20, +/*000051c0:*/0x66,0xc1,0xe0,0x10,0x66,0x33,0xd2,0x66,0xf7,0xf3,0x66,0x8b,0xd0,0x66,0xc1,0xea, +/*000051d0:*/0x10,0x0b,0xd2,0x74,0x03,0xb8,0xff,0xff,0x8b,0xd0,0xb8,0x4f,0x00,0xc3,0xb8,0x4f, +/*000051e0:*/0x01,0xc3,0x8b,0xd8,0xe8,0x1a,0xd1,0x75,0x04,0xb8,0x4f,0x02,0xc3,0x32,0xff,0xa8, +/*000051f0:*/0x7f,0x75,0x47,0x1e,0x66,0x60,0x50,0xe8,0xf2,0x25,0xa1,0x4a,0x04,0xf7,0xe2,0x52, +/*00005200:*/0x50,0x66,0x5a,0x66,0xc1,0xe2,0x03,0x80,0xe1,0xf8,0x66,0x0f,0xb7,0xf1,0x66,0x03, +/*00005210:*/0xf2,0x66,0x33,0xff,0xe8,0xc9,0x20,0x0f,0xb6,0xc8,0x66,0x03,0xfe,0xe2,0xfb,0x58, +/*00005220:*/0xe8,0x82,0x04,0x3c,0x80,0x75,0x03,0xe8,0xe8,0xbc,0x53,0xbb,0x24,0x02,0x66,0x8b, +/*00005230:*/0xc7,0xe8,0x45,0x05,0x5b,0x66,0x61,0x1f,0xeb,0x3d,0xfe,0xc8,0x75,0x3d,0x1e,0x66, +/*00005240:*/0x50,0x53,0xbb,0x24,0x02,0xe8,0xda,0x05,0x5b,0x66,0x25,0xff,0xff,0xff,0x01,0x66, +/*00005250:*/0x50,0xe8,0x98,0x25,0x8b,0x0e,0x4a,0x04,0xe8,0x85,0x20,0x0f,0xb6,0xc0,0x8b,0xd8, +/*00005260:*/0xc1,0xe0,0x03,0xf7,0xe1,0x8b,0xc8,0x58,0x5a,0xf7,0xf1,0x92,0x52,0x33,0xd2,0xf7, +/*00005270:*/0xf3,0x5a,0x8b,0xc8,0x66,0x58,0x1f,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b, +/*00005280:*/0xd8,0x0a,0xdb,0x75,0x16,0x51,0x52,0xb1,0x02,0x80,0xff,0x06,0x7e,0x02,0xfe,0xc1, +/*00005290:*/0xb0,0x02,0xe8,0x6e,0xc1,0x5a,0x59,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x13, +/*000052a0:*/0xb7,0x06,0x52,0xb2,0x59,0xe8,0xe1,0x03,0x5a,0xa8,0x01,0x74,0x02,0xb7,0x08,0xb8, +/*000052b0:*/0x4f,0x00,0xc3,0x33,0xc0,0xc3,0x8b,0xd8,0xf6,0xc3,0x7f,0x74,0x09,0x80,0xfb,0x01, +/*000052c0:*/0x74,0x04,0xb8,0x4f,0x02,0xc3,0x81,0xf9,0x00,0x01,0x77,0x6c,0x81,0xfa,0xff,0x00, +/*000052d0:*/0x77,0x66,0x8b,0xc2,0x03,0xc1,0x3d,0x00,0x01,0x77,0x5d,0x51,0x52,0x57,0x80,0xfb, +/*000052e0:*/0x01,0x74,0x39,0x8a,0xc2,0xe8,0xbd,0x03,0xb2,0xb0,0xee,0x80,0xfb,0x80,0x75,0x03, +/*000052f0:*/0xe8,0x1f,0xbc,0xb2,0x59,0xec,0xa8,0x01,0x75,0x13,0xb2,0xb4,0x66,0x26,0x8b,0x05, +/*00005300:*/0x66,0xc1,0xe0,0x02,0x66,0xef,0x83,0xc7,0x04,0xe2,0xf1,0xeb,0x24,0xb2,0xb4,0x66, +/*00005310:*/0x26,0x8b,0x05,0x66,0xef,0x83,0xc7,0x04,0xe2,0xf5,0xeb,0x15,0x8a,0xc2,0xe8,0x84, +/*00005320:*/0x03,0xb2,0xb2,0xee,0xb2,0xb4,0x66,0xed,0x66,0x26,0x89,0x05,0x83,0xc7,0x04,0xe2, +/*00005330:*/0xf5,0x5f,0x5a,0x59,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b,0xd8,0x0a,0xc0, +/*00005340:*/0x75,0x0c,0x0e,0x07,0xbf,0x52,0x53,0xb9,0xb7,0x01,0xb8,0x4f,0x00,0xc3,0xb8,0x4f, +/*00005350:*/0x01,0xc3,0x26,0x00,0x94,0x00,0xe0,0x00,0x0c,0x00,0x00,0xa0,0x40,0x02,0x10,0xa0, +/*00005360:*/0x16,0xa0,0x54,0xa0,0x38,0xa0,0x3c,0xa0,0x5c,0xa0,0x00,0xa0,0x04,0xa0,0xb0,0xa0, +/*00005370:*/0xb2,0xa0,0xb4,0xa0,0xff,0xff,0xff,0xff,0x56,0x52,0xe8,0x4a,0x01,0x00,0x00,0x66, +/*00005380:*/0x87,0xd6,0x0a,0xff,0x75,0x1e,0xb2,0x10,0xec,0xa8,0x08,0x74,0x07,0x5a,0x5e,0x66, +/*00005390:*/0xb8,0x4f,0x03,0xc3,0x66,0x8b,0xc6,0xb2,0x38,0x0a,0xdb,0x74,0x0e,0xb2,0x3c,0x80, +/*000053a0:*/0xfb,0x01,0x74,0x07,0x5a,0x5e,0x66,0xb8,0x4f,0x01,0xc3,0x50,0x52,0xb2,0x54,0xec, +/*000053b0:*/0xa8,0x08,0x5a,0x58,0x74,0x15,0x66,0xd1,0xe0,0x66,0x8b,0xf0,0xfe,0xc0,0x66,0x50, +/*000053c0:*/0x66,0x56,0x58,0xef,0x5a,0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x66,0xd1,0xe0,0x66,0xd1, +/*000053d0:*/0xe0,0x66,0xd1,0xe0,0x66,0x8b,0xf0,0x04,0x04,0x66,0x50,0x66,0x56,0x58,0xef,0x5a, +/*000053e0:*/0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x56,0xe8,0xdd,0x00,0x00,0x00,0x52,0x66,0x8b,0xd6, +/*000053f0:*/0xb2,0x53,0xec,0xa8,0x01,0x5a,0x75,0x06,0x5e,0x66,0xb8,0x4f,0x02,0xc3,0xf6,0xc3, +/*00005400:*/0x7f,0x74,0x06,0x5e,0x66,0xb8,0x4f,0x01,0xc3,0x50,0x51,0x52,0x66,0x52,0x66,0x51, +/*00005410:*/0x59,0xc1,0xe1,0x02,0x66,0x8b,0xd6,0xe8,0x9b,0x00,0x00,0x00,0xb2,0x00,0xb8,0x24, +/*00005420:*/0x02,0x00,0x00,0xef,0xb2,0x04,0x8b,0xc1,0xef,0x5a,0x59,0x58,0x5e,0x66,0xb8,0x4f, +/*00005430:*/0x00,0xc3,0xf6,0xc3,0x7f,0x74,0x0a,0x80,0xfb,0x01,0x74,0x05,0x66,0xb8,0x4f,0x02, +/*00005440:*/0xc3,0x66,0x81,0xf9,0x00,0x01,0x77,0x0c,0x66,0x8b,0xc2,0x66,0x03,0xc1,0x66,0x3d, +/*00005450:*/0x00,0x01,0x76,0x05,0x66,0xb8,0x4f,0x01,0xc3,0x56,0x53,0x51,0x52,0x57,0xe8,0x66, +/*00005460:*/0x00,0x00,0x00,0x8a,0xc2,0x66,0x8b,0xd6,0x80,0xfb,0x01,0x74,0x30,0xb2,0xb0,0xee, +/*00005470:*/0xe8,0x42,0x00,0x00,0x00,0xb2,0x59,0xec,0xa8,0x01,0x75,0x12,0xb2,0xb4,0x26,0x8b, +/*00005480:*/0x07,0xc1,0xe0,0x02,0xef,0x83,0xc7,0x04,0x66,0x49,0x75,0xf2,0xeb,0x1f,0xb2,0xb4, +/*00005490:*/0x26,0x8b,0x07,0xef,0x83,0xc7,0x04,0x66,0x49,0x75,0xf5,0xeb,0x10,0xb2,0xb2,0xee, +/*000054a0:*/0xb2,0xb4,0xed,0x26,0x89,0x07,0x83,0xc7,0x04,0x66,0x49,0x75,0xf5,0x5f,0x5a,0x59, +/*000054b0:*/0x5b,0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x80,0x75,0x0c,0xb2,0x5c,0xec,0xa8, +/*000054c0:*/0x01,0x75,0xfb,0xec,0xa8,0x01,0x74,0xfb,0xc3,0x50,0x51,0x52,0x57,0xe8,0x00,0x00, +/*000054d0:*/0x00,0x00,0x5f,0x66,0x2e,0x8b,0x97,0x88,0xfe,0xff,0xff,0x66,0x2e,0x8b,0x8f,0x8a, +/*000054e0:*/0xfe,0xff,0xff,0x66,0x8b,0xf2,0xb2,0x16,0x66,0xed,0x66,0x3b,0xc1,0x74,0x10,0xb6, +/*000054f0:*/0xff,0x66,0xed,0x66,0x3b,0xc1,0x74,0x07,0xfe,0xce,0x75,0xf5,0x66,0x8b,0xd6,0x32, +/*00005500:*/0xd2,0x66,0x8b,0xf2,0x5f,0x5a,0x59,0x58,0xc3,0x8b,0xd8,0x0a,0xdb,0x75,0x07,0xbb, +/*00005510:*/0x10,0x07,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x04,0xe8,0x0e,0x00,0xc3,0x80, +/*00005520:*/0xfb,0x02,0x75,0x04,0xe8,0x2c,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x51,0x53,0x80,0xff, +/*00005530:*/0x08,0x75,0x05,0xb8,0x4f,0x02,0xeb,0x18,0x33,0xc9,0x86,0xfb,0x83,0xe3,0x07,0x74, +/*00005540:*/0x04,0x0f,0xbc,0xcb,0x41,0x80,0xe1,0x03,0xb0,0x0a,0xe8,0xb6,0xbe,0xb8,0x4f,0x00, +/*00005550:*/0x5b,0x59,0xc3,0x51,0xb0,0x0a,0xb5,0x01,0xe8,0xa8,0xbe,0xb0,0x80,0xd2,0xc0,0x24, +/*00005560:*/0x7f,0x59,0x8a,0xf8,0xb8,0x4f,0x00,0xc3,0x8b,0xd8,0x0a,0xdb,0x75,0x4d,0x52,0xe8, +/*00005570:*/0x33,0x01,0xb2,0x20,0xed,0xa9,0x0f,0x0b,0x5a,0xa8,0x03,0x74,0x04,0xb7,0x00,0xeb, +/*00005580:*/0x24,0xa8,0x08,0x74,0x04,0xb7,0x02,0xeb,0x1c,0xf6,0xc4,0x03,0x74,0x04,0xb7,0x04, +/*00005590:*/0xeb,0x13,0xf6,0xc4,0x08,0x74,0x04,0xb7,0x06,0xeb,0x0a,0xa8,0x04,0x74,0x04,0xb7, +/*000055a0:*/0x03,0xeb,0x02,0xb7,0x00,0xb0,0x0b,0xe8,0x59,0xbe,0xf6,0xc3,0x0e,0x74,0x06,0x80, +/*000055b0:*/0xe3,0x0e,0x80,0xcb,0x02,0xb7,0x02,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x53, +/*000055c0:*/0x52,0xe8,0xe1,0x00,0xb2,0x20,0xed,0xa9,0x0f,0x0b,0x75,0x03,0x5a,0xeb,0x44,0x51, +/*000055d0:*/0x53,0x8c,0xc2,0xb9,0x80,0x00,0xa8,0x03,0x74,0x04,0xb7,0x00,0xeb,0x24,0xa8,0x08, +/*000055e0:*/0x74,0x04,0xb7,0x02,0xeb,0x1c,0xf6,0xc4,0x03,0x74,0x04,0xb7,0x04,0xeb,0x13,0xf6, +/*000055f0:*/0xc4,0x08,0x74,0x04,0xb7,0x06,0xeb,0x0a,0xa8,0x04,0x74,0x04,0xb7,0x03,0xeb,0x02, +/*00005600:*/0xb7,0x00,0xb0,0x0b,0xe8,0xfc,0xbd,0x5b,0x59,0x5a,0xb8,0x4f,0x00,0x26,0x80,0x3d, +/*00005610:*/0x00,0x74,0x03,0xb8,0x4f,0x01,0xc3,0x90,0x7b,0x4b,0x46,0x4c,0x0d,0x4e,0xfa,0x4e, +/*00005620:*/0x81,0x50,0x3b,0x4f,0xfc,0x50,0xe2,0x51,0x7f,0x52,0xb6,0x52,0x3c,0x53,0x44,0x56, +/*00005630:*/0x44,0x56,0x44,0x56,0x44,0x56,0x44,0x56,0x09,0x55,0x44,0x56,0x44,0x56,0x44,0x56, +/*00005640:*/0x44,0x56,0x68,0x55,0x8b,0xd8,0xc3,0x90,0x50,0x4d,0x49,0x44,0x79,0x1c,0x5e,0x56, +/*00005650:*/0x00,0x00,0x00,0xa0,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0x00,0x00,0x00,0x50,0x1e, +/*00005660:*/0x2e,0x8e,0x1e,0x58,0x56,0x8c,0xd8,0xa3,0x04,0x1d,0xa3,0x14,0x1d,0xa3,0x26,0x1d, +/*00005670:*/0x2e,0x8e,0x1e,0x50,0x56,0xa3,0xaa,0x04,0x1f,0x58,0xcb,0x52,0xe8,0x18,0x00,0xee, +/*00005680:*/0x5a,0xc3,0x52,0xe8,0x11,0x00,0xef,0x5a,0xc3,0x52,0xe8,0x0a,0x00,0xec,0x5a,0xc3, +/*00005690:*/0x52,0xe8,0x03,0x00,0xed,0x5a,0xc3,0x9c,0x57,0x32,0xf6,0x8b,0xfa,0xe8,0x05,0x00, +/*000056a0:*/0x03,0xd7,0x5f,0x9d,0xc3,0x9c,0x2e,0x8b,0x16,0x4a,0x01,0x0b,0xd2,0x74,0x03,0xe8, +/*000056b0:*/0x02,0x00,0x9d,0xc3,0x66,0x50,0x53,0x2e,0x8b,0x1e,0x46,0x01,0x33,0xd2,0xe8,0x24, +/*000056c0:*/0x00,0x66,0x2e,0x3b,0x06,0x8c,0x01,0x75,0x09,0xb2,0x14,0xe8,0x17,0x00,0x8a,0xf4, +/*000056d0:*/0xeb,0x0d,0x83,0xc3,0x08,0x80,0xff,0x09,0x72,0xe2,0x2e,0x8b,0x16,0x4a,0x01,0x32, +/*000056e0:*/0xd2,0x5b,0x66,0x58,0xc3,0xb4,0x80,0x8a,0xc7,0x66,0xc1,0xe0,0x10,0x8a,0xe3,0x8a, +/*000056f0:*/0xc2,0x9c,0xfa,0xba,0xf8,0x0c,0x66,0xef,0xba,0xfc,0x0c,0x66,0xed,0x9d,0xc3,0x51, +/*00005700:*/0xeb,0x12,0x51,0x32,0xc9,0xeb,0x0d,0x51,0xb1,0x01,0xeb,0x08,0x51,0xb1,0x02,0xeb, +/*00005710:*/0x03,0x51,0xb1,0x03,0x52,0x66,0x50,0x66,0x57,0x50,0xe8,0x88,0xff,0xb2,0x00,0x66, +/*00005720:*/0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x58,0x52,0xb2,0x04,0x32, +/*00005730:*/0xed,0x03,0xd1,0xee,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x59, +/*00005740:*/0xc3,0x51,0xeb,0x08,0x51,0x32,0xc9,0xeb,0x03,0x51,0xb1,0x02,0x52,0x66,0x50,0x66, +/*00005750:*/0x57,0x50,0xe8,0x50,0xff,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b, +/*00005760:*/0xc3,0x66,0xef,0x58,0x52,0xb2,0x04,0x32,0xed,0x03,0xd1,0xef,0x5a,0x66,0x8b,0xc7, +/*00005770:*/0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x59,0xc3,0x52,0x66,0x50,0x66,0x57,0x66,0x50, +/*00005780:*/0xe8,0x22,0xff,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66, +/*00005790:*/0xef,0x66,0x58,0x52,0xb2,0x04,0x66,0xef,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f, +/*000057a0:*/0x66,0x58,0x5a,0xc3,0x51,0xeb,0x12,0x51,0x32,0xc9,0xeb,0x0d,0x51,0xb1,0x01,0xeb, +/*000057b0:*/0x08,0x51,0xb1,0x02,0xeb,0x03,0x51,0xb1,0x03,0x52,0x66,0x50,0x66,0x57,0xe8,0xe4, +/*000057c0:*/0xfe,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52, +/*000057d0:*/0xb2,0x04,0x32,0xed,0x03,0xd1,0xec,0x8a,0xc8,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66, +/*000057e0:*/0x5f,0x66,0x58,0x5a,0x8a,0xc1,0x59,0xc3,0x51,0xeb,0x08,0x51,0x32,0xc9,0xeb,0x03, +/*000057f0:*/0x51,0xb1,0x02,0x52,0x66,0x50,0x66,0x57,0xe8,0xaa,0xfe,0xb2,0x00,0x66,0xed,0x66, +/*00005800:*/0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52,0xb2,0x04,0x32,0xed,0x03,0xd1, +/*00005810:*/0xed,0x8b,0xc8,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x8b,0xc1, +/*00005820:*/0x59,0xc3,0x52,0x66,0x57,0xe8,0x7d,0xfe,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66, +/*00005830:*/0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52,0xb2,0x04,0x66,0xed,0x5a,0x66,0x97,0x66,0xef, +/*00005840:*/0x66,0x97,0x66,0x5f,0x5a,0xc3,0xb2,0x00,0x66,0xc1,0xe0,0x10,0x66,0xc1,0xe8,0x10, +/*00005850:*/0x66,0xef,0xc3,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x01,0x02,0x00,0x02, +/*00005860:*/0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x01,0x02,0x00,0x01,0x64,0x00,0x64, +/*00005870:*/0x00,0x64,0x00,0x64,0x00,0x00,0x01,0x02,0x00,0x02,0x64,0x00,0x64,0x00,0x64,0x00, +/*00005880:*/0x64,0x00,0x00,0x01,0x02,0x00,0x01,0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x00, +/*00005890:*/0x01,0x02,0x00,0x02,0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x00,0x01,0x02,0x00, +/*000058a0:*/0x01,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x00,0x01,0x02,0x00,0x02,0x6c,0x00, +/*000058b0:*/0x6c,0x00,0x6c,0x00,0x6c,0x00,0x00,0x01,0x02,0x00,0x01,0x66,0x50,0x52,0xe8,0xe4, +/*000058c0:*/0xfd,0xb2,0x00,0x2e,0x8b,0x44,0x06,0x3d,0x98,0x01,0x75,0x6b,0x66,0xef,0xb2,0x04, +/*000058d0:*/0x2e,0x02,0x54,0x0a,0xec,0x2e,0x0a,0x44,0x0c,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0b, +/*000058e0:*/0xec,0x2e,0x0a,0x44,0x0c,0xee,0xb2,0x00,0x2e,0x8b,0x44,0x13,0x66,0xef,0xb2,0x04, +/*000058f0:*/0x2e,0x02,0x54,0x17,0xec,0x2e,0x0a,0x44,0x19,0xee,0xb2,0x04,0x2e,0x02,0x54,0x18, +/*00005900:*/0xec,0x2e,0x0a,0x44,0x19,0xee,0xb2,0x00,0x2e,0x8b,0x04,0x66,0xef,0xb2,0x04,0x2e, +/*00005910:*/0x02,0x54,0x08,0xec,0x2e,0x8a,0x64,0x19,0xf6,0xd4,0x22,0xc4,0xee,0xb2,0x00,0x2e, +/*00005920:*/0x8b,0x44,0x0d,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x15,0xec,0x2e,0x8a,0x64,0x19, +/*00005930:*/0xf6,0xd4,0x22,0xc4,0xee,0xeb,0x3e,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0a,0xec, +/*00005940:*/0x2e,0x8a,0x64,0x0c,0xf6,0xd4,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0b,0xec, +/*00005950:*/0x22,0xc4,0xee,0xb2,0x00,0x2e,0x8b,0x44,0x13,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54, +/*00005960:*/0x17,0xec,0x2e,0x8a,0x64,0x19,0xf6,0xd4,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54, +/*00005970:*/0x18,0xec,0x22,0xc4,0xee,0x5a,0x66,0x58,0xc3,0x66,0x50,0x52,0xe8,0x26,0xfd,0xb2, +/*00005980:*/0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x06,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0b, +/*00005990:*/0x2e,0x8a,0x64,0x0c,0xf6,0xd4,0xec,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0a, +/*000059a0:*/0xec,0x22,0xc4,0xee,0xb2,0x00,0x2e,0x8b,0x44,0x13,0x66,0xef,0xb2,0x04,0x2e,0x02, +/*000059b0:*/0x54,0x18,0x2e,0x8a,0x64,0x19,0xf6,0xd4,0xec,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02, +/*000059c0:*/0x54,0x17,0xec,0x22,0xc4,0xee,0x5a,0x66,0x58,0xc3,0x52,0x66,0x50,0xe8,0xd5,0xfc, +/*000059d0:*/0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x02,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54, +/*000059e0:*/0x09,0xec,0x2e,0x84,0x44,0x0c,0x74,0x04,0xb0,0x01,0xeb,0x02,0xb0,0x00,0x8a,0xd0, +/*000059f0:*/0x66,0x58,0x8a,0xc2,0x5a,0x0a,0xc0,0xc3,0x52,0x66,0x50,0xe8,0xa7,0xfc,0xb2,0x00, +/*00005a00:*/0x66,0x33,0xc0,0x2e,0x8b,0x44,0x0f,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x16,0xec, +/*00005a10:*/0x2e,0x84,0x44,0x19,0x74,0x04,0xb0,0x01,0xeb,0x02,0xb0,0x00,0x8a,0xd0,0x66,0x58, +/*00005a20:*/0x8a,0xc2,0x5a,0x0a,0xc0,0xc3,0x52,0x66,0x50,0xe8,0x79,0xfc,0x3c,0x01,0x74,0x1b, +/*00005a30:*/0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x04,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54, +/*00005a40:*/0x0a,0xec,0x2e,0x0a,0x44,0x0c,0xee,0xb4,0x00,0xeb,0x1d,0xb2,0x00,0x66,0x33,0xc0, +/*00005a50:*/0x2e,0x8b,0x44,0x04,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0a,0x2e,0x8a,0x64,0x0c, +/*00005a60:*/0xf6,0xd4,0xec,0x22,0xc4,0xee,0xb4,0x01,0x8a,0xd4,0x66,0x58,0x8a,0xe2,0x5a,0xc3, +/*00005a70:*/0x52,0x66,0x50,0xe8,0x2f,0xfc,0x3c,0x01,0x74,0x1b,0xb2,0x00,0x66,0x33,0xc0,0x2e, +/*00005a80:*/0x8b,0x44,0x11,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x17,0xec,0x2e,0x0a,0x44,0x19, +/*00005a90:*/0xee,0xb4,0x00,0xeb,0x1d,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x11,0x66,0xef, +/*00005aa0:*/0xb2,0x04,0x2e,0x02,0x54,0x17,0x2e,0x8a,0x64,0x19,0xf6,0xd4,0xec,0x22,0xc4,0xee, +/*00005ab0:*/0xb4,0x01,0x8a,0xd4,0x66,0x58,0x8a,0xe2,0x5a,0xc3,0x51,0xb9,0xa7,0x00,0xe8,0x65, +/*00005ac0:*/0xff,0xe8,0x06,0xff,0x38,0xc4,0x74,0x08,0xe8,0x09,0x14,0xe2,0xf4,0xf9,0xeb,0x01, +/*00005ad0:*/0xf8,0x59,0xc3,0x51,0xb9,0xa7,0x00,0xe8,0x96,0xff,0xe8,0x1b,0xff,0x38,0xc4,0x74, +/*00005ae0:*/0x08,0xe8,0xf0,0x13,0xe2,0xf4,0xf9,0xeb,0x01,0xf8,0x59,0xc3,0xe8,0xdb,0xfe,0x75, +/*00005af0:*/0x2a,0xe8,0xe0,0x13,0xb0,0x01,0xe8,0xc1,0xff,0x72,0x20,0xe8,0xd6,0x13,0xe8,0xf7, +/*00005b00:*/0xfe,0x8a,0xe0,0xe8,0xce,0x13,0xe8,0xef,0xfe,0x50,0xb0,0x00,0xe8,0xab,0xff,0x58, +/*00005b10:*/0x72,0x09,0x38,0xc4,0x75,0x05,0x0a,0xc0,0xf8,0xeb,0x06,0xb0,0x00,0xe8,0x06,0xff, +/*00005b20:*/0xf9,0xc3,0x50,0xe8,0xa4,0xfe,0x75,0x35,0xe8,0xa9,0x13,0x58,0x50,0xa8,0x01,0x74, +/*00005b30:*/0x09,0xb0,0x01,0xe8,0x9d,0xff,0x72,0x25,0xeb,0x07,0xb0,0x00,0xe8,0x94,0xff,0x72, +/*00005b40:*/0x1c,0xb0,0x01,0xe8,0x74,0xff,0x72,0x15,0xe8,0x89,0x13,0xb0,0x00,0xe8,0x6a,0xff, +/*00005b50:*/0x72,0x0b,0xb0,0x01,0xe8,0x19,0xff,0xe8,0x7a,0x13,0xf8,0xeb,0x01,0xf9,0x58,0xc3, +/*00005b60:*/0x51,0xe8,0x66,0xfe,0x75,0x1c,0xb0,0x01,0xe8,0x05,0xff,0x32,0xc0,0xb9,0x08,0x00, +/*00005b70:*/0xd0,0xe0,0x50,0xe8,0x76,0xff,0x58,0x72,0x09,0x74,0x02,0x0c,0x01,0xe2,0xf1,0xf8, +/*00005b80:*/0xeb,0x01,0xf9,0x59,0xc3,0x51,0x53,0x50,0xe8,0x3f,0xfe,0x75,0x24,0xbb,0xe8,0x03, +/*00005b90:*/0x58,0x50,0xb9,0x08,0x00,0xd0,0xc0,0xe8,0x88,0xff,0x72,0x0c,0xe2,0xf7,0xe8,0x4b, +/*00005ba0:*/0xff,0x72,0x0e,0x75,0x0c,0xf8,0xeb,0x0a,0xf7,0xc1,0x07,0x00,0x75,0x03,0x4b,0x75, +/*00005bb0:*/0xdf,0xf9,0x58,0x5b,0x59,0xc3,0x57,0xbf,0x2b,0x6f,0xe8,0x0b,0x00,0x5f,0xc3,0x57, +/*00005bc0:*/0xbf,0xe6,0x6e,0xe8,0x02,0x00,0x5f,0xc3,0x51,0x53,0xbb,0x96,0x00,0xb0,0x01,0xe8, +/*00005bd0:*/0x9e,0xfe,0xb0,0x01,0xe8,0x4f,0xfe,0xb9,0x03,0x00,0xe8,0xf7,0x12,0xe8,0xea,0xfd, +/*00005be0:*/0x74,0x47,0xe2,0xf6,0xb0,0x00,0xe8,0xd1,0xfe,0x72,0x4e,0xb0,0x01,0xe8,0x80,0xfe, +/*00005bf0:*/0xff,0xd7,0xb0,0x01,0xe8,0xc3,0xfe,0x72,0x30,0xe8,0xfc,0xfd,0x74,0x3b,0xe8,0xd3, +/*00005c00:*/0x12,0xe8,0xc6,0xfd,0x74,0x33,0xb0,0x00,0xe8,0xc8,0xfe,0x72,0x2c,0xe8,0xc4,0x12, +/*00005c10:*/0xe8,0xb7,0xfd,0x74,0x24,0xb0,0x00,0xe8,0xa0,0xfe,0x72,0x1d,0xb0,0x01,0xe8,0xb2, +/*00005c20:*/0xfe,0x72,0x16,0xe8,0xae,0x12,0xf8,0xeb,0x11,0xb0,0x01,0xe8,0x42,0xfe,0xb0,0x01, +/*00005c30:*/0xe8,0xf3,0xfd,0xe8,0x0c,0x12,0x4b,0x75,0x94,0xf9,0x5b,0x59,0xc3,0x53,0x51,0xe8, +/*00005c40:*/0x88,0xfd,0x75,0x21,0xe8,0x8d,0x12,0xb0,0x00,0xe8,0x87,0xfe,0x72,0x17,0xe8,0x83, +/*00005c50:*/0x12,0xb0,0x01,0xe8,0x64,0xfe,0x72,0x0d,0xe8,0x79,0x12,0xb0,0x01,0xe8,0x73,0xfe, +/*00005c60:*/0x72,0x03,0xf8,0xeb,0x0b,0xb0,0x01,0xe8,0x06,0xfe,0xb0,0x01,0xe8,0xb7,0xfd,0xf9, +/*00005c70:*/0x59,0x5b,0xc3,0x52,0x50,0xe8,0x2d,0xfa,0xe8,0x3b,0xff,0x58,0x72,0x07,0xe8,0x04, +/*00005c80:*/0xff,0xb3,0x02,0x73,0x02,0x32,0xdb,0xe8,0xb3,0xff,0x5a,0xc3,0x53,0x51,0x57,0xbb, +/*00005c90:*/0x01,0x00,0x5f,0x59,0x51,0x57,0x73,0x05,0xe8,0x24,0xff,0xeb,0x03,0xe8,0x16,0xff, +/*00005ca0:*/0x72,0x0d,0x26,0x8a,0x05,0x47,0xe8,0xdc,0xfe,0x72,0x04,0xe2,0xf5,0xeb,0x09,0xe8, +/*00005cb0:*/0x8b,0xff,0x4b,0x75,0xdd,0xf9,0xeb,0x04,0xe8,0x82,0xff,0xf8,0x5f,0x59,0x5b,0xc3, +/*00005cc0:*/0x50,0xb8,0xa0,0x00,0x26,0x89,0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0xbd,0xff,0x59, +/*00005cd0:*/0x73,0x25,0xb8,0xa6,0x00,0x26,0x89,0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0xac,0xff, +/*00005ce0:*/0x59,0x73,0x14,0xb8,0xa2,0x00,0x26,0x89,0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0x9b, +/*00005cf0:*/0xff,0x59,0x73,0x03,0xe9,0x82,0x00,0x26,0x8a,0x05,0xfe,0xc0,0x26,0x88,0x05,0x26, +/*00005d00:*/0x80,0x7d,0x02,0x53,0x75,0x05,0xe8,0xb6,0xfe,0xeb,0x03,0xe8,0xa8,0xfe,0x72,0x64, +/*00005d10:*/0x26,0x8a,0x05,0xe8,0x6f,0xfe,0x72,0x5c,0x66,0xc1,0xc1,0x10,0x8b,0xd9,0x66,0xc1, +/*00005d20:*/0xc1,0x10,0x0b,0xdb,0x75,0x04,0x8a,0xd9,0xb7,0x01,0x49,0xfe,0xcb,0xfe,0xcf,0xfc, +/*00005d30:*/0xe8,0x2d,0xfe,0x72,0x3f,0x38,0xd9,0x77,0x05,0x38,0xf9,0x72,0x01,0xaa,0x49,0x50, +/*00005d40:*/0x32,0xc0,0xe8,0xdd,0xfd,0x58,0x72,0x2c,0xe8,0x15,0xfe,0x72,0x27,0x38,0xd9,0x77, +/*00005d50:*/0x05,0x38,0xf9,0x72,0x01,0xaa,0x32,0xc0,0xe8,0xc7,0xfd,0x72,0x17,0xe2,0xe9,0xe8, +/*00005d60:*/0xfe,0xfd,0x72,0x10,0x38,0xd9,0x77,0x05,0x38,0xf9,0x72,0x01,0xaa,0xb0,0x01,0xe8, +/*00005d70:*/0xb0,0xfd,0x72,0x00,0xe8,0xc6,0xfe,0xeb,0x03,0xf9,0xeb,0x01,0xf8,0x58,0xc3,0x80, +/*00005d80:*/0xfb,0x04,0x75,0x07,0x33,0xc0,0x0c,0x02,0x0c,0x80,0xc3,0x0a,0xdb,0x75,0x50,0xb0, +/*00005d90:*/0xa0,0x80,0xff,0x06,0x74,0x05,0x80,0xff,0x02,0x75,0x02,0xb0,0xa6,0x33,0xdb,0x53, +/*00005da0:*/0xb9,0x01,0x00,0x51,0x50,0xe8,0xcb,0xfe,0x58,0x59,0x0a,0xdb,0x75,0x13,0xe2,0xf3, +/*00005db0:*/0x5b,0x3c,0xa2,0x74,0x08,0x3c,0xa0,0x74,0x24,0xb0,0xa2,0xeb,0xe2,0xb0,0xa0,0xeb, +/*00005dc0:*/0xde,0x5b,0x3c,0xa6,0x75,0x07,0x83,0xcb,0x08,0xb0,0xa2,0xeb,0xd2,0x3c,0xa2,0x75, +/*00005dd0:*/0x07,0x83,0xcb,0x04,0xb0,0xa0,0xeb,0xc7,0x83,0xcb,0x02,0xeb,0xa7,0xeb,0xa5,0x80, +/*00005de0:*/0xfb,0x01,0x75,0x27,0x8e,0xc2,0x26,0x8b,0x05,0x50,0x51,0x57,0x26,0xc6,0x45,0x02, +/*00005df0:*/0x4e,0xe8,0xcc,0xfe,0x5f,0x59,0x26,0x83,0x3d,0xff,0x58,0x75,0x0b,0x26,0x89,0x05, +/*00005e00:*/0x26,0xc6,0x45,0x02,0x53,0xe8,0xb8,0xfe,0x32,0xe4,0xc3,0x80,0xfb,0x02,0x75,0x02, +/*00005e10:*/0x8e,0xc2,0x80,0xfb,0x03,0x75,0x14,0x8e,0xc2,0xf9,0xe8,0x6f,0xfe,0x57,0x03,0xf9, +/*00005e20:*/0x26,0x8b,0x0d,0x5f,0x0a,0xc9,0x74,0x00,0x32,0xe4,0xc3,0xb4,0x01,0xc3,0x9c,0x80, +/*00005e30:*/0xff,0x02,0x75,0x16,0x0a,0xdb,0x74,0x0a,0xf6,0xc3,0x80,0x75,0x05,0xe8,0x7f,0x53, +/*00005e40:*/0x74,0x08,0x80,0xe3,0x7f,0xbe,0x6d,0x58,0xeb,0x28,0x80,0xff,0x04,0x75,0x0e,0x0a, +/*00005e50:*/0xdb,0x74,0x05,0xe8,0x01,0x02,0x74,0x05,0xbe,0x87,0x58,0xeb,0x15,0x80,0xff,0x00, +/*00005e60:*/0x75,0x09,0x0a,0xdb,0x74,0x09,0xe8,0xdf,0x01,0x75,0x04,0xb4,0x01,0xeb,0x0c,0xbe, +/*00005e70:*/0x53,0x58,0xe8,0x46,0xfa,0xe8,0x07,0xff,0xe8,0xfe,0xfa,0x9d,0xc3,0xb0,0x02,0xe6, +/*00005e80:*/0x70,0x50,0x58,0xe4,0x71,0x8a,0xe0,0x32,0xc0,0xe6,0x70,0x50,0x58,0xe4,0x71,0xc3, +/*00005e90:*/0x51,0x50,0xe8,0xe8,0xff,0x04,0x02,0x3c,0x5a,0x72,0x04,0x2c,0x5a,0xfe,0xc4,0x50, +/*00005ea0:*/0x32,0xdb,0x53,0xb9,0x06,0x00,0x5b,0x53,0xb0,0x0b,0xe8,0x56,0xb5,0x0a,0xdb,0x75, +/*00005eb0:*/0x11,0xe8,0xc9,0xff,0x8b,0xdc,0x36,0x8b,0x5f,0x02,0x3b,0xc3,0x77,0x02,0xe2,0xe6, +/*00005ec0:*/0x32,0xdb,0x58,0x58,0x58,0x59,0xc3,0x50,0x52,0xe8,0xd9,0xf7,0xb2,0x57,0xec,0x0c, +/*00005ed0:*/0x40,0xee,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xcb,0xf7,0xb2,0x57,0xec,0x24,0x80,0xee, +/*00005ee0:*/0x5a,0x58,0xc3,0x66,0x50,0x52,0xe8,0xbc,0xf7,0xb2,0x00,0x66,0x33,0xc0,0xb8,0x84, +/*00005ef0:*/0x02,0x66,0xef,0xb2,0x07,0xec,0xa8,0x01,0xf8,0x75,0x01,0xf9,0x5a,0x66,0x58,0xc3, +/*00005f00:*/0x50,0x52,0xe8,0xa0,0xf7,0xb2,0x29,0xec,0x24,0x05,0xb4,0x01,0x3c,0x05,0x74,0x02, +/*00005f10:*/0x32,0xe4,0x0a,0xe4,0x5a,0x58,0xc3,0x50,0x52,0xe8,0x89,0xf7,0xb2,0x29,0xec,0x24, +/*00005f20:*/0x0a,0xb4,0x01,0x3c,0x0a,0x74,0x02,0x32,0xe4,0x0a,0xe4,0x5a,0x58,0xc3,0x50,0x53, +/*00005f30:*/0x51,0xbb,0x8c,0x02,0xe8,0x7f,0xf8,0x24,0x02,0x8a,0xc8,0xbb,0x90,0x02,0xe8,0x75, +/*00005f40:*/0xf8,0x24,0x02,0x0a,0xc1,0xa8,0x02,0x59,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x8c,0x02, +/*00005f50:*/0xe8,0x63,0xf8,0x24,0xfd,0xe8,0xb9,0xf7,0xbb,0x90,0x02,0xe8,0x58,0xf8,0x24,0xfd, +/*00005f60:*/0xe8,0xae,0xf7,0x5b,0x58,0xc3,0x52,0xe8,0x3b,0xf7,0x66,0x50,0xb2,0x00,0x66,0x33, +/*00005f70:*/0xc0,0xb8,0x8c,0x02,0x66,0xef,0xb2,0x06,0xed,0x89,0x46,0x00,0x80,0xe4,0xfd,0xef, +/*00005f80:*/0x66,0x58,0x5a,0xc3,0x52,0xe8,0x1d,0xf7,0x66,0x50,0xb2,0x00,0x66,0x33,0xc0,0xb8, +/*00005f90:*/0x8c,0x02,0x66,0xef,0xb2,0x06,0x8b,0x46,0x00,0xef,0x66,0x58,0x5a,0xc3,0x50,0x52, +/*00005fa0:*/0xe8,0x02,0xf7,0xb2,0x7c,0xec,0x24,0xfe,0xee,0xe8,0x42,0x00,0x5a,0x58,0xc3,0x50, +/*00005fb0:*/0x53,0x52,0xe8,0xf0,0xf6,0xb2,0x7c,0xec,0x24,0x8f,0x0c,0x02,0xee,0xbb,0xf8,0x03, +/*00005fc0:*/0xe8,0xe4,0xf7,0x0c,0x80,0xe8,0x3a,0xf7,0xe8,0xe1,0xf7,0x0c,0x02,0xe8,0x37,0xf7, +/*00005fd0:*/0xbb,0x14,0x0d,0xe8,0xd1,0xf7,0x0c,0x20,0xe8,0x27,0xf7,0xbb,0x8c,0x08,0xb8,0x13, +/*00005fe0:*/0x02,0xe8,0x60,0xf7,0xb8,0x88,0x00,0xe8,0x5f,0xf7,0x5a,0x5b,0x58,0xc3,0x50,0x52, +/*00005ff0:*/0xe8,0xb2,0xf6,0xb2,0x55,0xec,0x0c,0x80,0xee,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xa4, +/*00006000:*/0xf6,0xb2,0x55,0xec,0x24,0x7f,0xee,0xb2,0x7c,0xec,0x24,0xfe,0xee,0x5a,0x58,0xc3, +/*00006010:*/0x50,0x53,0xbb,0xf8,0x03,0xe8,0x8f,0xf7,0x24,0x8f,0x24,0x7f,0xe8,0xe3,0xf6,0x5b, +/*00006020:*/0x58,0xc3,0x50,0x53,0xbb,0x80,0x02,0xe8,0xc1,0xf7,0x33,0xc0,0x0c,0xe2,0xe8,0x13, +/*00006030:*/0xf7,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x80,0x02,0xe8,0x6b,0xf7,0x24,0xc0,0xe8,0xc1, +/*00006040:*/0xf6,0x5b,0x58,0xc3,0xe8,0xed,0xff,0xc3,0x50,0xe8,0x42,0x01,0xa8,0x03,0x75,0x05, +/*00006050:*/0xe8,0xa4,0x01,0xa8,0x40,0x58,0xc3,0x50,0xe8,0x2b,0x01,0xa8,0x03,0x75,0x05,0xe8, +/*00006060:*/0x95,0x01,0xa8,0x40,0x58,0xc3,0x52,0x53,0x8a,0xfc,0xe8,0x38,0xf6,0xb2,0x27,0xec, +/*00006070:*/0x24,0xaf,0x8a,0xe0,0xb2,0x25,0xec,0x24,0xaf,0x32,0xe0,0x8a,0xc4,0x8a,0xe7,0x5b, +/*00006080:*/0x5a,0xc3,0x52,0xe8,0x1f,0xf6,0xb2,0x24,0xed,0x25,0xaf,0xaf,0x5a,0xc3,0x50,0x52, +/*00006090:*/0xe8,0x12,0xf6,0xb2,0x24,0xed,0x0c,0x02,0x80,0xe4,0xfd,0xef,0x5a,0x58,0xc3,0x50, +/*000060a0:*/0x52,0xe8,0x01,0xf6,0xb2,0x24,0xed,0x0c,0x20,0x80,0xe4,0xdf,0xef,0x5a,0x58,0xc3, +/*000060b0:*/0x50,0x52,0xe8,0xf0,0xf5,0xb2,0x24,0xed,0x25,0xfd,0xfd,0xee,0x5a,0x58,0xc3,0x50, +/*000060c0:*/0x52,0xe8,0xe1,0xf5,0xb2,0x24,0xed,0x25,0xdf,0xdf,0xee,0x5a,0x58,0xc3,0x60,0x1e, +/*000060d0:*/0x06,0xe8,0x80,0x01,0xa8,0x02,0x74,0x0b,0xe8,0xb3,0xff,0x50,0xe8,0xbf,0xfe,0xe8, +/*000060e0:*/0x52,0xff,0x58,0xa8,0x20,0x74,0x0b,0xe8,0xb5,0xff,0x50,0xe8,0xc1,0xfe,0xe8,0x53, +/*000060f0:*/0xff,0x58,0xa8,0x08,0x74,0x11,0xe8,0x09,0x01,0x75,0x03,0xe8,0xec,0x4f,0xe8,0x8f, +/*00006100:*/0x4f,0xe8,0x1a,0x50,0xe8,0xc0,0x50,0xa8,0x80,0x74,0x05,0xe8,0xf4,0x00,0x75,0x00, +/*00006110:*/0xa8,0x04,0x74,0x11,0xe8,0x45,0x33,0xe8,0xe8,0x00,0x75,0x03,0xe8,0xff,0x35,0xe8, +/*00006120:*/0x27,0x36,0xe8,0x21,0x37,0x8b,0x46,0x2c,0x89,0x46,0x22,0x89,0x46,0x12,0x07,0x1f, +/*00006130:*/0x61,0xc3,0x50,0x52,0xe8,0x4b,0xff,0x8a,0xe0,0xe8,0x18,0x01,0xf6,0xc4,0x20,0x74, +/*00006140:*/0x0a,0xa8,0x20,0x75,0x06,0xe8,0x77,0xff,0xe8,0xc5,0xfe,0xf6,0xc4,0x02,0x74,0x0a, +/*00006150:*/0xa8,0x02,0x75,0x06,0xe8,0x59,0xff,0xe8,0xa2,0xfe,0xf6,0xc4,0x08,0x74,0x12,0xe8, +/*00006160:*/0xcc,0x4f,0xa8,0x08,0x74,0x05,0xe8,0x9c,0x4f,0xeb,0x06,0xe8,0x6a,0x50,0xe8,0x94, +/*00006170:*/0x4f,0xf6,0xc4,0x04,0x74,0x0d,0xe8,0x10,0x36,0xa8,0x04,0x75,0x06,0xe8,0xd7,0x36, +/*00006180:*/0xe8,0xb6,0x35,0x5a,0x58,0xc3,0x52,0xe8,0x1b,0xf5,0xb2,0x21,0xeb,0x06,0x52,0xe8, +/*00006190:*/0x13,0xf5,0xb2,0x20,0xec,0x24,0x3f,0x5a,0xc3,0x52,0x53,0xe8,0x07,0xf5,0xb2,0x21, +/*000061a0:*/0xeb,0x07,0x52,0x53,0xe8,0xfe,0xf4,0xb2,0x20,0x8b,0xd8,0xf6,0xd7,0xec,0x22,0xc7, +/*000061b0:*/0x0a,0xc3,0xee,0x5b,0x5a,0xc3,0x50,0x52,0xe8,0xea,0xf4,0x32,0xc9,0xb2,0x20,0xed, +/*000061c0:*/0xa8,0x03,0x74,0x03,0x80,0xc9,0x02,0xf6,0xc4,0x03,0x74,0x03,0x80,0xc9,0x20,0xa8, +/*000061d0:*/0x30,0x74,0x03,0x80,0xc9,0x04,0xa8,0x04,0x74,0x03,0x80,0xc9,0x01,0xa8,0x08,0x74, +/*000061e0:*/0x03,0x80,0xc9,0x08,0xf6,0xc4,0x08,0x74,0x03,0x80,0xc9,0x80,0x5a,0x58,0xc3,0x52, +/*000061f0:*/0xe8,0xb2,0xf4,0xb2,0x21,0xeb,0x06,0x52,0xe8,0xaa,0xf4,0xb2,0x20,0xec,0x24,0xc0, +/*00006200:*/0x5a,0xc3,0x50,0x52,0xe8,0x9e,0xf4,0xb2,0x2b,0xec,0x24,0x07,0x0a,0xc0,0x5a,0x58, +/*00006210:*/0xc3,0x50,0x52,0xe8,0x8f,0xf4,0xb2,0x27,0x8a,0xc4,0x24,0xaf,0xee,0x5a,0x58,0xc3, +/*00006220:*/0x52,0xe8,0x81,0xf4,0xb2,0x27,0xec,0x24,0xaf,0x5a,0xc3,0x50,0x52,0xe8,0x75,0xf4, +/*00006230:*/0xb2,0x23,0xec,0x24,0x50,0x80,0xe4,0xaf,0x0a,0xc4,0xee,0x5a,0x58,0xc3,0x52,0xe8, +/*00006240:*/0x63,0xf4,0xb2,0x23,0xec,0x24,0xaf,0x5a,0xc3,0x52,0xe8,0x58,0xf4,0xb2,0x24,0xec, +/*00006250:*/0x24,0xaf,0x5a,0xc3,0x52,0xe8,0x4d,0xf4,0xb2,0x23,0xec,0x24,0xaf,0x5a,0xc3,0x50, +/*00006260:*/0x53,0x51,0x57,0x32,0xe4,0xe8,0xc3,0xff,0xe8,0xfb,0xfd,0x0a,0xc0,0x74,0x3d,0x32, +/*00006270:*/0xe4,0xa8,0x02,0x74,0x08,0xe8,0xd0,0xfd,0x74,0x03,0x80,0xcc,0x02,0xa8,0x20,0x74, +/*00006280:*/0x08,0xe8,0xd3,0xfd,0x74,0x03,0x80,0xcc,0x20,0xa8,0x08,0x74,0x0a,0xe8,0x9f,0x4f, +/*00006290:*/0x74,0x05,0x80,0xcc,0x08,0xeb,0x0e,0xa8,0x04,0x74,0x0a,0xe8,0xf0,0xfe,0xa8,0x30, +/*000062a0:*/0x74,0x03,0x80,0xcc,0x04,0x0a,0xe4,0x74,0x03,0xe8,0x7f,0xff,0x5f,0x59,0x5b,0x58, +/*000062b0:*/0xc3,0x50,0x52,0xe8,0xcc,0xfd,0x8a,0xe0,0xe8,0x99,0xff,0xf6,0xc4,0x04,0x74,0x04, +/*000062c0:*/0xa8,0x04,0x75,0x03,0xe8,0x90,0x35,0xe8,0xbf,0x34,0xe8,0x6c,0x34,0xf6,0xc4,0x20, +/*000062d0:*/0x74,0x09,0xa8,0x20,0x74,0x05,0xe8,0x37,0xfd,0xeb,0x06,0xe8,0xe1,0xfd,0xe8,0x2f, +/*000062e0:*/0xfd,0xf6,0xc4,0x02,0x74,0x09,0xa8,0x02,0x74,0x05,0xe8,0x0f,0xfd,0xeb,0x06,0xe8, +/*000062f0:*/0xbe,0xfd,0xe8,0x07,0xfd,0xe8,0x36,0x4e,0xe8,0x14,0x50,0xf6,0xc4,0x08,0x74,0x09, +/*00006300:*/0xa8,0x08,0x74,0x05,0xe8,0x44,0xfc,0xeb,0x06,0xe8,0xcc,0x4e,0xe8,0xf6,0x4d,0xe8, +/*00006310:*/0x70,0xfd,0xa8,0x01,0x75,0x03,0xe8,0xb1,0x2f,0xe8,0x89,0xf3,0xb2,0x28,0xec,0x24, +/*00006320:*/0xfb,0xee,0x5a,0x58,0xc3,0x50,0x53,0x52,0xe8,0x29,0xff,0x0a,0xc0,0x74,0x67,0xa8, +/*00006330:*/0x20,0x74,0x06,0xe8,0x79,0xfc,0xe8,0x66,0xfd,0xa8,0x02,0x74,0x06,0xe8,0x5e,0xfc, +/*00006340:*/0xe8,0x4b,0xfd,0xa8,0xdd,0x75,0x03,0xe8,0x50,0x00,0xa8,0x04,0x74,0x1e,0xa8,0xd9, +/*00006350:*/0x75,0x44,0xa8,0xdd,0x75,0x03,0xe8,0x41,0x00,0xe8,0x00,0x31,0xe8,0xa3,0xfe,0x75, +/*00006360:*/0x03,0xe8,0xba,0x33,0xe8,0xe2,0x33,0xe8,0xdc,0x34,0xeb,0x1f,0xa8,0x08,0x74,0x1b, +/*00006370:*/0xa8,0x55,0x75,0x22,0xe8,0x8b,0xfe,0x75,0x03,0xe8,0x6e,0x4d,0xe8,0x11,0x4d,0xe8, +/*00006380:*/0xc0,0x0a,0xe8,0x99,0x4d,0xe8,0x3f,0x4e,0xe8,0x4a,0xfb,0xbb,0x54,0x00,0xe8,0x1b, +/*00006390:*/0xf4,0x24,0xf3,0xe8,0x71,0xf3,0x5a,0x5b,0x58,0xc3,0x50,0x53,0x52,0x57,0xbb,0xd6, +/*000063a0:*/0x09,0xb5,0x00,0xe8,0x9a,0x03,0xbb,0x10,0x0b,0xb5,0x01,0xe8,0x92,0x03,0xba,0xcc, +/*000063b0:*/0x03,0xec,0x24,0x0c,0xc0,0xe8,0x02,0x8a,0xd8,0x53,0xbb,0x00,0x02,0xe8,0x30,0xf4, +/*000063c0:*/0x5b,0x53,0xbf,0x03,0x64,0x2e,0x3b,0x05,0x74,0x0b,0x83,0xc7,0x04,0x2e,0x83,0x3d, +/*000063d0:*/0x00,0x74,0x0d,0xeb,0xf0,0x83,0xc7,0x02,0x8a,0xeb,0x2e,0x8b,0x1d,0xe8,0x60,0x03, +/*000063e0:*/0x5b,0xe8,0xc1,0xf2,0xb2,0x09,0xec,0x24,0xfc,0x0a,0xc3,0xee,0x04,0x04,0xfe,0xca, +/*000063f0:*/0xee,0x53,0xe8,0x68,0x04,0x5b,0xf6,0xc3,0x02,0x74,0x03,0xe8,0x12,0x0a,0x5f,0x5a, +/*00006400:*/0x5b,0x58,0xc3,0x63,0x00,0xa0,0x0f,0x7f,0x00,0x64,0x19,0x00,0x00,0x66,0x50,0x53, +/*00006410:*/0x51,0x57,0x8b,0xfb,0x50,0x66,0xc1,0xe0,0x10,0x58,0xe8,0x37,0xfe,0x0a,0xc0,0x75, +/*00006420:*/0x03,0xe9,0x5a,0x01,0x8a,0xe0,0x80,0xe4,0xa0,0xc0,0xec,0x04,0x0a,0xc4,0x24,0x0f, +/*00006430:*/0x3c,0x02,0x75,0x03,0xe9,0x27,0x01,0x3c,0x04,0x74,0x1b,0x3c,0x06,0x74,0x17,0x3c, +/*00006440:*/0x08,0x74,0x07,0x3c,0x0a,0x74,0x03,0xe9,0x34,0x01,0x8b,0xdf,0x66,0xc1,0xe8,0x10, +/*00006450:*/0xe8,0xfa,0x4d,0xe9,0x28,0x01,0x50,0xe8,0x4b,0xf2,0xb2,0x27,0xec,0xa8,0x04,0x58, +/*00006460:*/0x75,0x03,0xe9,0x19,0x01,0x8b,0xdf,0xe8,0x79,0xab,0xe8,0xb6,0x33,0x75,0x03,0xe9, +/*00006470:*/0x0c,0x01,0x53,0xe8,0x33,0x33,0x8b,0xfb,0x5b,0x75,0x03,0xe9,0x00,0x01,0xb9,0x08, +/*00006480:*/0x00,0xe8,0x44,0x3c,0x75,0x03,0xb9,0x09,0x00,0x51,0x2e,0x8b,0x45,0x05,0xe8,0x23, +/*00006490:*/0x3c,0x74,0x02,0xd1,0xe8,0x52,0x33,0xd2,0xf7,0xf1,0x5a,0x83,0xe8,0x05,0x88,0x46, +/*000064a0:*/0x00,0x59,0x2e,0x8b,0x05,0x52,0x33,0xd2,0xf7,0xf1,0x5a,0x48,0x88,0x46,0x01,0xc6, +/*000064b0:*/0x46,0x19,0x00,0x2e,0x8a,0x47,0x04,0x88,0x46,0x02,0x8a,0x46,0x03,0x24,0xe0,0x2e, +/*000064c0:*/0x0a,0x47,0x05,0x88,0x46,0x03,0x2e,0x8a,0x47,0x06,0x88,0x46,0x04,0x2e,0x8a,0x47, +/*000064d0:*/0x07,0x24,0x60,0x2e,0x0a,0x47,0x07,0x88,0x46,0x05,0x2e,0x8b,0x45,0x09,0x83,0xe8, +/*000064e0:*/0x02,0x88,0x46,0x06,0x2e,0x8a,0x47,0x08,0x24,0x10,0x2e,0x0a,0x47,0x08,0x2e,0x8b, +/*000064f0:*/0x4d,0x09,0x83,0xe9,0x02,0x8a,0xcd,0x80,0xe1,0x01,0x0a,0xc1,0x80,0xe5,0x02,0xc0, +/*00006500:*/0xe5,0x04,0x0a,0xc5,0x2e,0x8b,0x4d,0x02,0x8a,0xcd,0x80,0xe1,0x01,0xd0,0xe1,0x0a, +/*00006510:*/0xc1,0x80,0xe5,0x02,0xc0,0xe5,0x05,0x0a,0xc5,0x88,0x46,0x07,0x8a,0x46,0x09,0x24, +/*00006520:*/0xdf,0x2e,0x0a,0x47,0x09,0x88,0x46,0x09,0x2e,0x8a,0x47,0x0a,0x88,0x46,0x10,0x2e, +/*00006530:*/0x8a,0x47,0x0b,0x0c,0x80,0x88,0x46,0x11,0x2e,0x8b,0x45,0x02,0x48,0x88,0x46,0x12, +/*00006540:*/0x2e,0x8a,0x47,0x0c,0x88,0x46,0x15,0x2e,0x8a,0x47,0x0d,0x88,0x46,0x16,0x33,0xc0, +/*00006550:*/0x89,0x46,0x29,0x89,0x46,0x34,0x89,0x46,0x42,0x89,0x46,0x44,0xeb,0x20,0xc6,0x46, +/*00006560:*/0x19,0x00,0x66,0xc7,0x46,0x36,0x00,0x00,0x00,0x00,0x66,0xc7,0x46,0x3a,0x00,0x00, +/*00006570:*/0x00,0x00,0x66,0xc7,0x46,0x3e,0x00,0x00,0x00,0x00,0xc6,0x46,0x2c,0x00,0x5f,0x59, +/*00006580:*/0x5b,0x66,0x58,0xc3,0x50,0x51,0x52,0x8a,0x46,0x3b,0x8a,0xe0,0xc0,0xec,0x04,0x0a, +/*00006590:*/0xc4,0x24,0x0f,0x3c,0x08,0x74,0x2a,0x3c,0x02,0x74,0x26,0x3c,0x0a,0x74,0x22,0x3c, +/*000065a0:*/0x04,0x74,0x06,0x3c,0x06,0x74,0x02,0xeb,0x14,0x32,0xed,0x8a,0x4e,0x07,0x41,0xc1, +/*000065b0:*/0xe1,0x03,0x8b,0x56,0x0c,0x42,0xe8,0xea,0x31,0x74,0x02,0xeb,0x04,0xc6,0x46,0x02, +/*000065c0:*/0x00,0x5a,0x59,0x58,0xc3,0x00,0x9c,0xfa,0xbb,0x54,0x02,0xe8,0x02,0x00,0x9d,0xc3, +/*000065d0:*/0x51,0xe8,0xd1,0xf0,0x66,0x33,0xc0,0x2e,0x8b,0x07,0x0b,0xc0,0x74,0x55,0xf6,0xc4, +/*000065e0:*/0x80,0x75,0x42,0x8a,0xec,0x80,0xe4,0x1f,0xf6,0xc5,0x20,0x75,0x2a,0xf6,0xc5,0x40, +/*000065f0:*/0xb2,0x00,0x66,0x0f,0xb7,0xc0,0x66,0xef,0x66,0x2e,0x8b,0x47,0x02,0xb2,0x04,0x74, +/*00006600:*/0x0f,0x66,0xed,0x66,0x2e,0x23,0x47,0x02,0x66,0x2e,0x0b,0x47,0x06,0x83,0xc3,0x04, +/*00006610:*/0x66,0xef,0x83,0xc3,0x06,0xeb,0xbd,0x8a,0xd0,0xf6,0xc5,0x40,0x75,0xe3,0x66,0x2e, +/*00006620:*/0x8b,0x47,0x02,0xeb,0xeb,0x53,0x2e,0x8b,0x5f,0x02,0xe8,0x0c,0x08,0x5b,0x83,0xc3, +/*00006630:*/0x06,0xeb,0xa1,0x59,0xc3,0x90,0x01,0x07,0x40,0x00,0x80,0x03,0x6e,0x00,0x06,0x50, +/*00006640:*/0x00,0x80,0x03,0x6e,0x00,0x06,0x64,0x00,0x80,0x06,0x96,0x00,0x06,0x64,0x00,0x80, +/*00006650:*/0x04,0x96,0x00,0x05,0x64,0x00,0x80,0x03,0x96,0x00,0x04,0x80,0x00,0x80,0x09,0xdc, +/*00006660:*/0x00,0x06,0x80,0x00,0x80,0x07,0xdc,0x00,0x05,0x80,0x00,0x80,0x05,0xdc,0x00,0x04, +/*00006670:*/0x80,0x00,0x80,0x03,0x52,0x00,0x82,0x80,0x00,0x80,0x03,0x52,0x00,0x02,0x90,0x00, +/*00006680:*/0x80,0x0b,0xf5,0x00,0x06,0x90,0x00,0x80,0x09,0xe6,0x00,0x05,0x90,0x00,0x80,0x06, +/*00006690:*/0xe6,0x00,0x04,0x90,0x00,0x80,0x03,0xe6,0x00,0x02,0xa0,0x00,0x80,0x0e,0xf5,0x00, +/*000066a0:*/0x06,0xa0,0x00,0x80,0x0b,0xf5,0x00,0x05,0xa0,0x00,0x80,0x07,0xf5,0x00,0x04,0xa0, +/*000066b0:*/0x00,0x80,0x04,0xf5,0x00,0x02,0xc8,0x00,0x80,0x15,0x0e,0x01,0x06,0xc8,0x00,0x80, +/*000066c0:*/0x10,0x0e,0x01,0x05,0xc8,0x00,0x80,0x0b,0x0e,0x01,0x04,0xc8,0x00,0x80,0x06,0x0e, +/*000066d0:*/0x01,0x02,0xe8,0x00,0x80,0x1e,0x5e,0x01,0x06,0xe8,0x00,0x80,0x16,0x5e,0x01,0x05, +/*000066e0:*/0xe8,0x00,0x80,0x0f,0x5e,0x01,0x04,0xe8,0x00,0x80,0x08,0x5e,0x01,0x02,0xf0,0x00, +/*000066f0:*/0x80,0x1e,0x5e,0x01,0x06,0xf0,0x00,0x80,0x17,0x5e,0x01,0x05,0xf0,0x00,0x80,0x0f, +/*00006700:*/0x5e,0x01,0x04,0xf0,0x00,0x80,0x08,0x5e,0x01,0x02,0x00,0x01,0x80,0x22,0x5e,0x01, +/*00006710:*/0x06,0x00,0x01,0x80,0x1a,0x5e,0x01,0x05,0x00,0x01,0x80,0x11,0x5e,0x01,0x04,0x00, +/*00006720:*/0x01,0x80,0x09,0x5e,0x01,0x02,0x00,0x00,0x02,0x06,0x40,0xc0,0x02,0x4b,0x06,0x5a, +/*00006730:*/0x50,0xc0,0x02,0x4b,0x06,0x5a,0x00,0x00,0x01,0x02,0x04,0x08,0x03,0x10,0x06,0x0c, +/*00006740:*/0x66,0x50,0x53,0x51,0xb0,0x08,0x32,0xe4,0xb5,0xfc,0xe8,0xec,0x00,0xb0,0x02,0xb4, +/*00006750:*/0x01,0xb5,0xff,0xe8,0xe3,0x00,0x59,0x5b,0x56,0x53,0xbe,0x92,0x06,0xe8,0x7a,0x03, +/*00006760:*/0x58,0xe8,0x57,0x00,0x80,0xc5,0x04,0x80,0xcf,0x80,0x51,0x53,0x66,0x58,0xe8,0x6b, +/*00006770:*/0x00,0x80,0xe7,0x7f,0xb0,0x03,0xe8,0x80,0x00,0x66,0x53,0x66,0xc1,0xeb,0x10,0x83, +/*00006780:*/0xe3,0xff,0x80,0xcf,0x80,0x8b,0xc3,0xb5,0x03,0xe8,0x50,0x00,0x80,0xe7,0x7f,0x66, +/*00006790:*/0x5b,0xb0,0x02,0x32,0xe4,0xb5,0xfe,0xe8,0x9f,0x00,0xe8,0x7c,0x07,0xb0,0x08,0xb4, +/*000067a0:*/0x03,0xb5,0xfc,0xe8,0x93,0x00,0x66,0x8b,0xc3,0x66,0xc1,0xe8,0x0a,0x83,0xe0,0xc0, +/*000067b0:*/0x83,0xe1,0x07,0x0b,0xc8,0x5e,0x66,0x58,0x32,0xe4,0xc3,0x51,0x56,0x32,0xed,0xbe, +/*000067c0:*/0x38,0x67,0x03,0xf1,0x2e,0x8a,0x0c,0xf7,0xe1,0x5e,0x3d,0xa8,0x61,0xb4,0x20,0x7e, +/*000067d0:*/0x02,0xb4,0x38,0xb0,0x42,0xb5,0xc7,0xe8,0x5f,0x00,0x59,0xc3,0x52,0x66,0x50,0xe8, +/*000067e0:*/0xc3,0xee,0xb2,0x08,0xec,0x24,0xc0,0x0a,0xc5,0x0c,0x80,0xee,0x66,0x58,0xb2,0x0c, +/*000067f0:*/0x66,0xef,0xb2,0x08,0x32,0xc0,0xee,0x5a,0xc3,0x52,0xe8,0xa8,0xee,0x9c,0xfa,0xb2, +/*00006800:*/0x08,0xee,0xb2,0x0c,0x66,0xed,0x9d,0x5a,0xc3,0x52,0xe8,0x98,0xee,0x9c,0xfa,0xb2, +/*00006810:*/0x08,0xee,0xc0,0xe8,0x06,0xb2,0x0c,0x02,0xd0,0xed,0x9d,0x5a,0xc3,0x52,0xe8,0x84, +/*00006820:*/0xee,0x9c,0xfa,0xb2,0x08,0xee,0xc0,0xe8,0x06,0xb2,0x0c,0x02,0xd0,0xec,0x9d,0x5a, +/*00006830:*/0xc3,0x51,0x32,0xed,0xe8,0x02,0x00,0x59,0xc3,0x52,0xe8,0x68,0xee,0x9c,0xfa,0xb2, +/*00006840:*/0x08,0x50,0x24,0x3f,0x0c,0x80,0xee,0x58,0xc0,0xe8,0x06,0xb2,0x0c,0x02,0xd0,0xec, +/*00006850:*/0x22,0xc5,0x0a,0xc4,0xee,0xb2,0x08,0x32,0xc0,0xee,0x9d,0x5a,0xc3,0x66,0x51,0x66, +/*00006860:*/0x52,0xe8,0x41,0xee,0x9c,0xfa,0xb2,0x09,0xec,0x24,0x03,0x04,0x04,0xfe,0xca,0xee, +/*00006870:*/0xb2,0x0e,0xec,0x50,0xb2,0x0c,0xed,0x25,0xff,0x07,0x66,0x0f,0xb7,0xc0,0x66,0x33, +/*00006880:*/0xd2,0x66,0xb9,0x8c,0x0a,0x00,0x00,0x66,0xf7,0xe1,0xb9,0x3c,0x00,0x66,0xf7,0xf1, +/*00006890:*/0x5a,0x66,0x50,0x83,0xe2,0x07,0x56,0xbe,0x38,0x67,0x03,0xf2,0x2e,0x8a,0x04,0x5e, +/*000068a0:*/0x32,0xe4,0x66,0x0f,0xb7,0xc8,0x66,0x58,0x66,0x33,0xd2,0x66,0xf7,0xf1,0x9d,0x66, +/*000068b0:*/0x5a,0x66,0x59,0xc3,0x66,0x51,0x66,0x52,0xb0,0x12,0xe8,0x60,0xff,0x24,0x07,0x0a, +/*000068c0:*/0xc0,0x75,0x11,0xb0,0xd4,0xe8,0x55,0xff,0xa8,0x01,0x75,0x35,0x66,0xb8,0xc8,0x19, +/*000068d0:*/0x00,0x00,0xeb,0x24,0xfe,0xc8,0x50,0xb0,0x4a,0xe8,0x41,0xff,0x32,0xe4,0x66,0x0f, +/*000068e0:*/0xb7,0xc0,0x66,0x33,0xd2,0x66,0xb9,0x18,0x15,0x00,0x00,0x66,0xf7,0xe1,0xb9,0x0c, +/*000068f0:*/0x00,0x66,0xf7,0xf1,0x59,0x66,0xd3,0xe8,0x66,0x5a,0x66,0x59,0xc3,0x66,0x51,0x66, +/*00006900:*/0x52,0xb0,0x0d,0xe8,0x17,0xff,0x24,0x07,0x0a,0xc0,0x75,0x08,0x66,0xb8,0xc8,0x19, +/*00006910:*/0x00,0x00,0xeb,0x28,0x3c,0x07,0x74,0xa0,0xfe,0xc8,0x50,0xb0,0x8a,0xe8,0xfd,0xfe, +/*00006920:*/0x32,0xe4,0x66,0x0f,0xb7,0xc0,0x66,0x33,0xd2,0x66,0xb9,0x18,0x15,0x00,0x00,0x66, +/*00006930:*/0xf7,0xe1,0xb9,0x0c,0x00,0x66,0xf7,0xf1,0x59,0x66,0xd3,0xe8,0x66,0x5a,0x66,0x59, +/*00006940:*/0xc3,0x66,0x50,0x57,0x56,0x52,0x51,0x8b,0xc7,0x2b,0xc3,0x8b,0xf7,0x26,0x89,0x47, +/*00006950:*/0x0a,0xe8,0x51,0xed,0xb2,0x08,0xec,0x33,0xc0,0xab,0xb9,0x36,0x00,0x32,0xe4,0x50, +/*00006960:*/0xb2,0x08,0xec,0x24,0x40,0x0a,0xc4,0xee,0xb2,0x0c,0x66,0xed,0x66,0xab,0x58,0xfe, +/*00006970:*/0xc4,0xe2,0xec,0xb2,0x08,0x26,0x8a,0x04,0xee,0x32,0xc0,0x26,0x88,0x04,0x59,0x5a, +/*00006980:*/0x5e,0x5f,0x66,0x58,0x81,0xc7,0xda,0x00,0xc3,0x66,0x50,0x57,0x56,0x51,0x52,0x8b, +/*00006990:*/0x7f,0x0a,0x03,0xfb,0x8b,0xf7,0x46,0x46,0xb9,0x36,0x00,0x32,0xe4,0xe8,0x05,0xed, +/*000069a0:*/0xb2,0x08,0x50,0xec,0x24,0xc0,0x0c,0x80,0x0a,0xc4,0xee,0xb2,0x0c,0x66,0xad,0x66, +/*000069b0:*/0xef,0x58,0xfe,0xc4,0xe2,0xea,0xb2,0x08,0x8a,0x05,0xee,0x5a,0x59,0x5e,0x5f,0x66, +/*000069c0:*/0x58,0xc3,0x66,0x50,0xb2,0x08,0x8a,0xc3,0x24,0x3f,0x0c,0x80,0xee,0x66,0x58,0xb2, +/*000069d0:*/0x0c,0x66,0xef,0xb2,0x08,0x32,0xc0,0xee,0xc3,0x53,0x51,0x52,0xe8,0xc6,0xec,0xb9, +/*000069e0:*/0xe8,0x03,0x2e,0xac,0x8a,0xd8,0x0a,0xdb,0x75,0x03,0xe9,0x9b,0x00,0xf6,0xc3,0x80, +/*000069f0:*/0x74,0x72,0x80,0xe3,0x7f,0x80,0xfb,0x01,0x74,0x16,0x80,0xfb,0x02,0x74,0x16,0x80, +/*00006a00:*/0xfb,0x03,0x74,0x16,0x80,0xfb,0x04,0x74,0x1f,0x80,0xfb,0x05,0x74,0x28,0xeb,0xcf, +/*00006a10:*/0xe8,0xe5,0x04,0xeb,0xca,0xe8,0x01,0x05,0xeb,0xc5,0x49,0x74,0xc2,0xb0,0x94,0xe8, +/*00006a20:*/0xfb,0xfd,0xa8,0x01,0x75,0xf4,0xeb,0xb7,0x49,0x74,0xb4,0xb0,0x94,0xe8,0xed,0xfd, +/*00006a30:*/0xa8,0x08,0x74,0xf4,0xeb,0xa9,0xb0,0xd4,0xe8,0xe2,0xfd,0xa8,0x01,0x74,0xa0,0xb0, +/*00006a40:*/0x12,0xb4,0x11,0xe8,0xeb,0xfd,0xb0,0x52,0xb4,0x11,0xe8,0xe4,0xfd,0xe8,0xc9,0x04, +/*00006a50:*/0xe8,0xc6,0x04,0xb8,0xd4,0x00,0xb5,0xfe,0xe8,0xde,0xfd,0xe8,0xbb,0x04,0xe8,0xb8, +/*00006a60:*/0x04,0xe9,0x7b,0xff,0xf6,0xc3,0x40,0x74,0x16,0x2e,0xac,0x8a,0xf8,0xc0,0xe7,0x06, +/*00006a70:*/0x2e,0xad,0x8a,0xe8,0x8a,0xc3,0x24,0x3f,0x0a,0xc7,0xe8,0xbc,0xfd,0xeb,0x06,0x66, +/*00006a80:*/0x2e,0xad,0xe8,0x3d,0xff,0xe9,0x57,0xff,0x5a,0x59,0x5b,0xc3,0x50,0x53,0x51,0x56, +/*00006a90:*/0xbe,0xec,0x03,0xeb,0x07,0x50,0x53,0x51,0x56,0xbe,0xd7,0x03,0x2e,0xac,0x3c,0xff, +/*00006aa0:*/0x74,0x33,0x3c,0x0f,0x75,0x14,0xbb,0x50,0x01,0xb9,0x00,0x80,0x49,0x74,0x09,0xe8, +/*00006ab0:*/0xf5,0xec,0x24,0x03,0x3c,0x03,0x75,0xf4,0xeb,0xe2,0x8a,0xc8,0x2e,0xad,0xbb,0x58, +/*00006ac0:*/0x01,0xe8,0x3e,0xec,0x8a,0xc4,0xe8,0x3e,0xec,0xe8,0xea,0xec,0x24,0x6f,0x0a,0xc1, +/*00006ad0:*/0xe8,0x3e,0xec,0xeb,0xc7,0x5e,0x59,0x5b,0x58,0xc3,0x66,0x50,0x66,0x52,0x66,0x0f, +/*00006ae0:*/0xb7,0xd3,0x66,0x8b,0xc2,0xb1,0x00,0x66,0x2e,0x3b,0x54,0x04,0x76,0x11,0x66,0x2e, +/*00006af0:*/0x3b,0x54,0x08,0x76,0x05,0x66,0x2e,0x8b,0x54,0x08,0x76,0x03,0xe9,0x82,0x00,0x66, +/*00006b00:*/0xc1,0xe0,0x02,0x66,0xc1,0xe2,0x04,0xb1,0x05,0x66,0x2e,0x3b,0x54,0x04,0x77,0x07, +/*00006b10:*/0x66,0x2e,0x8b,0x54,0x04,0xeb,0x6a,0xe8,0xa5,0x00,0x76,0x65,0x66,0x2b,0xd0,0xb1, +/*00006b20:*/0x07,0x66,0x2e,0x3b,0x54,0x04,0x77,0x07,0x66,0x2e,0x8b,0x54,0x04,0xeb,0x52,0xe8, +/*00006b30:*/0x8d,0x00,0x76,0x4d,0x66,0x2b,0xd0,0x66,0xc1,0xe8,0x02,0xb1,0x03,0xe8,0x7f,0x00, +/*00006b40:*/0x76,0x3f,0x66,0x2b,0xd0,0x66,0x2b,0xd0,0xb1,0x06,0xe8,0x72,0x00,0x76,0x32,0x66, +/*00006b50:*/0x2b,0xd0,0x66,0x2b,0xd0,0xb1,0x02,0xe8,0x65,0x00,0x76,0x25,0x66,0x2b,0xd0,0xb1, +/*00006b60:*/0x04,0xe8,0x5b,0x00,0x76,0x1b,0x66,0x2b,0xd0,0xb1,0x01,0xe8,0x51,0x00,0x76,0x11, +/*00006b70:*/0x66,0xd1,0xea,0xb1,0x00,0x66,0x2e,0x3b,0x54,0x08,0x76,0x05,0x66,0x2e,0x8b,0x54, +/*00006b80:*/0x08,0x8b,0xda,0x2e,0x8b,0x44,0x02,0xf7,0xe3,0x2e,0x8b,0x1c,0xd1,0xeb,0x03,0xc3, +/*00006b90:*/0x83,0xd2,0x00,0x2e,0x8b,0x1c,0xf7,0xf3,0x81,0xfe,0x92,0x06,0x74,0x08,0x3d,0x00, +/*00006ba0:*/0x01,0x72,0x0b,0xb8,0xff,0x00,0x3d,0x00,0x08,0x72,0x03,0xb8,0xff,0x07,0x66,0x2e, +/*00006bb0:*/0x0f,0xb7,0x5c,0x02,0x66,0xc1,0xe3,0x10,0x8b,0xd8,0x66,0x5a,0x66,0x58,0xc3,0x66, +/*00006bc0:*/0x2e,0x3b,0x54,0x04,0x72,0x06,0x66,0x2e,0x3b,0x54,0x08,0xc3,0x80,0xf9,0x00,0xc3, +/*00006bd0:*/0xe8,0x48,0xb7,0x74,0x01,0xc3,0xe8,0xd8,0xf6,0x32,0xed,0xe8,0xf5,0xb6,0x50,0x52, +/*00006be0:*/0xe8,0xc2,0xea,0xb2,0x56,0xec,0x24,0xf7,0xee,0xb2,0x54,0xec,0x24,0x97,0xee,0xb2, +/*00006bf0:*/0x54,0xec,0xb2,0x50,0xec,0x24,0xfc,0xee,0x5a,0x58,0xe8,0x88,0x00,0xc3,0xe8,0x1a, +/*00006c00:*/0xb7,0x74,0x01,0xc3,0x26,0x8a,0x57,0x07,0xf6,0xc2,0x40,0x74,0x0d,0x50,0x52,0xe8, +/*00006c10:*/0x93,0xea,0xb2,0x50,0xec,0x0c,0x02,0xee,0x5a,0x58,0x26,0x8a,0x57,0x37,0xf6,0xc2, +/*00006c20:*/0x10,0x75,0x10,0xf6,0xc2,0x20,0x74,0x40,0xba,0xc4,0x03,0xb0,0x04,0xee,0x42,0xec, +/*00006c30:*/0x0c,0x08,0xee,0xba,0xce,0x03,0xb0,0x05,0xee,0x42,0xec,0x0c,0x40,0xee,0xba,0xd4, +/*00006c40:*/0x03,0xb0,0x13,0xee,0x42,0xec,0xd0,0xe0,0xee,0x50,0x52,0xe8,0x57,0xea,0xb2,0x54, +/*00006c50:*/0xec,0x0c,0x48,0xee,0xb2,0x54,0xec,0x5a,0x58,0x50,0x52,0xe8,0x47,0xea,0xb2,0x56, +/*00006c60:*/0xec,0x0c,0x08,0xee,0x5a,0x58,0xeb,0x19,0xf6,0xc2,0x40,0x74,0x14,0x50,0x52,0xe8, +/*00006c70:*/0x33,0xea,0xb2,0x54,0xec,0x0c,0x40,0xee,0x5a,0x58,0x32,0xed,0xe8,0x5f,0xb6,0xeb, +/*00006c80:*/0xd8,0xe8,0xa1,0xf6,0xc3,0x66,0x50,0x52,0x57,0xe8,0x19,0xea,0xbf,0xab,0x6c,0x2e, +/*00006c90:*/0x8b,0x05,0x83,0xf8,0xff,0x74,0x0f,0xe8,0xac,0xeb,0xb2,0x04,0x66,0x33,0xc0,0x66, +/*00006ca0:*/0xef,0x83,0xc7,0x02,0xeb,0xe9,0x5f,0x5a,0x66,0x58,0xc3,0x08,0x02,0x0c,0x02,0x00, +/*00006cb0:*/0x02,0x04,0x02,0xff,0xff,0x40,0x60,0x30,0x18,0x18,0x10,0x0c,0x18,0x18,0x66,0x51, +/*00006cc0:*/0x66,0x52,0x83,0xec,0x12,0x8b,0xfc,0xe8,0xea,0xfb,0x36,0x89,0x05,0x66,0x0f,0xb7, +/*00006cd0:*/0xd8,0x66,0xb8,0xc0,0xa3,0x9b,0x00,0x66,0x33,0xd2,0x66,0xf7,0xf3,0x66,0x8b,0xc8, +/*00006ce0:*/0xe8,0x1a,0xfc,0x36,0x89,0x45,0x02,0x2d,0x0b,0x1a,0x36,0x89,0x45,0x04,0x66,0x0f, +/*00006cf0:*/0xb7,0xd8,0x66,0x33,0xd2,0x66,0xb8,0x80,0x1a,0x06,0x00,0x66,0xf7,0xf3,0x66,0x03, +/*00006d00:*/0xc1,0x66,0x36,0x89,0x45,0x0a,0x66,0x33,0xd2,0x66,0xb8,0xa0,0x8f,0x3e,0x00,0x66, +/*00006d10:*/0xf7,0xf3,0x66,0x36,0x89,0x45,0x0e,0x66,0x33,0xd2,0x66,0xb8,0x00,0x6a,0x18,0x00, +/*00006d20:*/0x66,0xf7,0xf3,0x66,0x36,0x01,0x45,0x0e,0x66,0xb8,0x20,0x75,0x38,0x00,0x66,0x3d, +/*00006d30:*/0xc0,0x27,0x09,0x00,0x73,0x06,0x66,0xb8,0xc0,0x27,0x09,0x00,0x66,0x05,0xe0,0x93, +/*00006d40:*/0x04,0x00,0x66,0x33,0xd2,0x36,0x8b,0x1d,0x66,0x0f,0xb7,0xdb,0x66,0xf7,0xf3,0x66, +/*00006d50:*/0x36,0x01,0x45,0x0a,0x66,0xb8,0xa0,0xbb,0x0d,0x00,0x66,0x3d,0xc0,0x27,0x09,0x00, +/*00006d60:*/0x73,0x06,0x66,0xb8,0xc0,0x27,0x09,0x00,0x66,0x05,0xe0,0x93,0x04,0x00,0x66,0x33, +/*00006d70:*/0xd2,0x36,0x8b,0x1d,0x66,0x0f,0xb7,0xdb,0x66,0xf7,0xf3,0x66,0x36,0x01,0x45,0x0a, +/*00006d80:*/0x66,0x33,0xd2,0x66,0xb8,0x00,0x35,0x0c,0x00,0x36,0x8b,0x5d,0x02,0x66,0x0f,0xb7, +/*00006d90:*/0xdb,0x66,0xf7,0xf3,0x66,0x36,0x01,0x45,0x0e,0x66,0x36,0x03,0x45,0x0a,0x66,0x36, +/*00006da0:*/0x3b,0x45,0x0e,0x77,0x05,0x66,0x36,0x8b,0x45,0x0e,0x66,0x8b,0xd8,0xbe,0xb5,0x6c, +/*00006db0:*/0xe8,0xf2,0xe8,0xb2,0x51,0xe8,0xd1,0xe8,0x83,0xe0,0x0f,0x03,0xf0,0x2e,0x8a,0x0c, +/*00006dc0:*/0x32,0xed,0xe8,0x98,0xfa,0xe8,0x82,0x26,0x74,0x03,0xe8,0x99,0x2a,0x33,0xd2,0xf7, +/*00006dd0:*/0xf1,0x66,0x0f,0xb7,0xc0,0x66,0xf7,0xe3,0x66,0x33,0xd2,0x66,0xbb,0x35,0x82,0x00, +/*00006de0:*/0x00,0x66,0xf7,0xf3,0x66,0x0b,0xd2,0x74,0x01,0x40,0x66,0x83,0xe0,0x7f,0x66,0xc1, +/*00006df0:*/0xe0,0x10,0x66,0x83,0xc8,0x5c,0x66,0x0d,0x00,0x5c,0x00,0x00,0x66,0x0d,0x00,0x00, +/*00006e00:*/0x00,0x20,0xbb,0xf0,0x02,0xe8,0x71,0xe9,0x83,0xc4,0x12,0x66,0x5a,0x66,0x59,0xc3, +/*00006e10:*/0x53,0xbb,0xf4,0x02,0x66,0xb8,0x34,0x34,0x00,0x00,0xe8,0x5c,0xe9,0x5b,0xc3,0x66, +/*00006e20:*/0xb8,0x00,0x00,0x00,0x00,0xc3,0xb8,0x01,0x00,0x81,0xfb,0x5c,0x44,0x77,0x02,0x33, +/*00006e30:*/0xc0,0x8a,0xe0,0xb0,0x48,0xe8,0xf9,0xf9,0xc3,0x57,0xbf,0x1b,0x00,0xe8,0x10,0x00, +/*00006e40:*/0x5f,0xc3,0x53,0x57,0xbb,0xc8,0x00,0xbf,0x87,0x00,0xe8,0x03,0x00,0x5f,0x5b,0xc3, +/*00006e50:*/0x9c,0x66,0x50,0x51,0x52,0xfa,0xe8,0x4c,0xe8,0xb2,0x00,0x66,0xb8,0x24,0x01,0x00, +/*00006e60:*/0x00,0x66,0xef,0xb2,0x04,0x66,0xed,0x80,0xe4,0x60,0x80,0xcc,0x01,0x66,0xef,0xb2, +/*00006e70:*/0x08,0xec,0x50,0xb0,0x13,0xee,0xb2,0x0c,0x66,0xed,0x66,0x50,0x50,0xb2,0x08,0xb0, +/*00006e80:*/0x93,0xee,0xb2,0x0c,0x58,0x80,0xe4,0xfd,0x80,0xcc,0x00,0x66,0xef,0xb2,0x0f,0xb9, +/*00006e90:*/0xa0,0x00,0x81,0xff,0x87,0x00,0x75,0x03,0xb9,0x20,0x03,0x33,0xc0,0xee,0x8b,0xc7, +/*00006ea0:*/0x8a,0xe0,0xec,0x38,0xe0,0x73,0x02,0xe2,0xf9,0x4b,0x75,0xe3,0xb2,0x08,0xb0,0x93, +/*00006eb0:*/0xee,0xb2,0x0c,0x66,0x58,0x66,0xef,0xb2,0x08,0x58,0xee,0xb2,0x00,0x66,0xb8,0x24, +/*00006ec0:*/0x01,0x00,0x00,0x66,0xef,0xb2,0x04,0x66,0xed,0x80,0xe4,0xe0,0x66,0xef,0x5a,0x59, +/*00006ed0:*/0x66,0x58,0x9d,0xc3,0x53,0xbb,0x02,0x00,0xe8,0x5e,0xff,0x5b,0xc3,0x53,0xbb,0x05, +/*00006ee0:*/0x00,0xe8,0x55,0xff,0x5b,0xc3,0x53,0xbb,0x0d,0x00,0xe8,0x4c,0xff,0x5b,0xc3,0x53, +/*00006ef0:*/0xbb,0x1a,0x00,0xe8,0x43,0xff,0x5b,0xc3,0x53,0xbb,0x96,0x00,0xe8,0x3a,0xff,0x5b, +/*00006f00:*/0xc3,0x53,0xbb,0x04,0x01,0xe8,0x31,0xff,0x5b,0xc3,0x53,0xbb,0x86,0x01,0xe8,0x28, +/*00006f10:*/0xff,0x5b,0xc3,0xe8,0x2c,0xff,0xe2,0xfb,0xc3,0x51,0xb9,0x05,0x00,0xe8,0xf3,0xff, +/*00006f20:*/0x59,0xc3,0x51,0xb9,0x0f,0x00,0xe8,0xea,0xff,0x59,0xc3,0x51,0xb9,0x32,0x00,0xe8, +/*00006f30:*/0xe1,0xff,0x59,0xc3,0x51,0xb9,0x14,0x00,0xe8,0xf0,0xff,0x59,0xc3,0x00,0x09,0x09, +/*00006f40:*/0x05,0x05,0x09,0x09,0x11,0x12,0x80,0x20,0x20,0x01,0x01,0x01,0x01,0x01,0x20,0x00, +/*00006f50:*/0x00,0x01,0x20,0xff,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0x7f,0xfe,0xff,0xfe, +/*00006f60:*/0xb4,0x0a,0x55,0x83,0xec,0x02,0x8b,0xec,0xe8,0xfb,0xef,0xbe,0x46,0x6f,0x8a,0xc4, +/*00006f70:*/0x32,0xe4,0x03,0xf0,0xe8,0x2e,0xe7,0xb2,0x5b,0xb0,0xff,0xee,0xb2,0x59,0xec,0x2e, +/*00006f80:*/0x22,0x44,0x0d,0x2e,0x0a,0x04,0x24,0x7f,0xee,0x81,0xfe,0x46,0x6f,0x74,0x63,0x81, +/*00006f90:*/0xfe,0x4f,0x6f,0x73,0x5d,0xb9,0x00,0x01,0xa8,0x01,0x75,0x43,0xb2,0x53,0xec,0xa8, +/*00006fa0:*/0x01,0x74,0x20,0xbe,0x51,0x44,0x1e,0x0e,0x1f,0x32,0xc0,0xb2,0xb0,0xee,0xb2,0xb4, +/*00006fb0:*/0xad,0x86,0xe0,0x66,0xc1,0xe0,0x08,0xac,0x66,0xc1,0xe0,0x02,0x66,0xef,0xe2,0xf0, +/*00006fc0:*/0x1f,0xeb,0x2f,0xbe,0x51,0x44,0x1e,0x0e,0x1f,0x32,0xc0,0xb2,0xb0,0xee,0xb2,0xb4, +/*00006fd0:*/0xad,0x86,0xe0,0x66,0xc1,0xe0,0x08,0xac,0x66,0xef,0xe2,0xf4,0x1f,0xeb,0x13,0x66, +/*00006fe0:*/0x33,0xc0,0xb2,0xb0,0x66,0xef,0xb2,0xb4,0x66,0xef,0x66,0x05,0x01,0x01,0x01,0x00, +/*00006ff0:*/0xe2,0xf6,0xe8,0x8f,0xef,0x83,0xc4,0x02,0x5d,0xc3,0xe8,0xa8,0xe6,0xb2,0x5b,0xec, +/*00007000:*/0x26,0x88,0x45,0x02,0xb2,0xb0,0xec,0x26,0x88,0x45,0x01,0x50,0x83,0xc7,0x03,0x32, +/*00007010:*/0xc0,0xb2,0xb2,0xee,0xb2,0xb4,0xb9,0x00,0x01,0x66,0xed,0x66,0xab,0x4f,0xe2,0xf9, +/*00007020:*/0x58,0xb2,0xb0,0xee,0xc3,0xe8,0x7d,0xe6,0xb2,0x5b,0x26,0x8a,0x44,0x02,0xee,0x56, +/*00007030:*/0x32,0xc0,0xb2,0xb0,0xee,0x83,0xc6,0x03,0xb9,0x00,0x01,0xb2,0xb4,0x66,0x26,0x8b, +/*00007040:*/0x04,0x66,0xef,0x83,0xc6,0x03,0xe2,0xf5,0x5e,0xb2,0xb0,0x26,0x8a,0x44,0x01,0xee, +/*00007050:*/0xc3,0x66,0x50,0x66,0x53,0x51,0x52,0xe8,0x4b,0xe6,0xb2,0x53,0xec,0x8a,0xe2,0x24, +/*00007060:*/0xfd,0x0c,0x01,0xee,0x8b,0x5e,0x12,0xb5,0x03,0xe8,0xd4,0xf6,0x8b,0x5e,0x12,0xe8, +/*00007070:*/0xb4,0xfd,0xf6,0x46,0x04,0x02,0x74,0x04,0x80,0x66,0x0a,0xfe,0x8a,0x5e,0x06,0x8a, +/*00007080:*/0x7e,0x11,0x80,0xe7,0x0f,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x04,0x80,0xe4, +/*00007090:*/0x03,0x8a,0x4e,0x08,0x8a,0x6e,0x11,0xc0,0xed,0x06,0x80,0xe5,0x03,0x3b,0xd8,0x77, +/*000070a0:*/0x02,0xfe,0xc7,0x50,0x53,0xbb,0x00,0x08,0xe8,0x0b,0xe7,0xa8,0x80,0x5b,0x58,0x75, +/*000070b0:*/0x06,0x3b,0xc8,0x77,0x02,0xfe,0xc5,0x66,0xc1,0xc0,0x10,0x8b,0xc3,0x66,0x8b,0xd8, +/*000070c0:*/0xe8,0xe2,0xe5,0xb8,0x50,0x02,0xe8,0x7d,0xe7,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef, +/*000070d0:*/0xb8,0x00,0x02,0xe8,0x70,0xe7,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xc1,0xe1,0x03, +/*000070e0:*/0x0f,0xb6,0x46,0x1f,0xc6,0x46,0x1f,0x00,0x03,0xc8,0x0f,0xb6,0x46,0x09,0x66,0xc1, +/*000070f0:*/0xc0,0x10,0x8b,0xc1,0x66,0x8b,0xd8,0xb8,0xc4,0x02,0xe8,0x49,0xe7,0xb2,0x04,0x66, +/*00007100:*/0x8b,0xc3,0x66,0xef,0xb8,0x04,0x02,0xe8,0x3c,0xe7,0xb2,0x04,0x66,0x8b,0xc3,0x66, +/*00007110:*/0xef,0x66,0x8b,0x5e,0x0a,0xb8,0x54,0x02,0xe8,0x2b,0xe7,0xb2,0x04,0x66,0x8b,0xc3, +/*00007120:*/0x66,0xef,0xb8,0x08,0x02,0xe8,0x1e,0xe7,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b, +/*00007130:*/0x46,0x10,0x32,0xe4,0x66,0xc1,0xe0,0x10,0x8b,0x46,0x0e,0x66,0x8b,0xd8,0xb8,0xc8, +/*00007140:*/0x02,0xe8,0x02,0xe7,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x0c,0x02,0xe8,0xf5, +/*00007150:*/0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb2,0x09,0xb0,0x03,0xee,0x8b,0x46,0x14, +/*00007160:*/0x8a,0xc8,0x8a,0xc4,0x83,0xe1,0x7f,0x83,0xe0,0x7f,0x66,0xc1,0xc0,0x10,0x8b,0xc1, +/*00007170:*/0x66,0x8b,0xd8,0xb8,0x34,0x02,0xe8,0xcd,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef, +/*00007180:*/0x8b,0x46,0x16,0x8a,0xc8,0x8a,0xc4,0x8a,0x6e,0x1b,0x8a,0xe5,0x81,0xe1,0xff,0x0f, +/*00007190:*/0xc0,0xec,0x04,0x25,0xff,0x0f,0x66,0xc1,0xc0,0x10,0x8b,0xc1,0x66,0x8b,0xd8,0xb8, +/*000071a0:*/0x38,0x02,0xe8,0xa1,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8a,0x46,0x1a,0x25, +/*000071b0:*/0xff,0x00,0x66,0xc1,0xe0,0x10,0x8b,0x46,0x18,0x66,0x8b,0xd8,0xb8,0x30,0x02,0xe8, +/*000071c0:*/0x84,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb2,0x50,0x8a,0x46,0x04,0x8a,0x66, +/*000071d0:*/0x3d,0xef,0xb8,0x24,0x02,0xe8,0x6e,0xe6,0xb2,0x04,0x66,0x33,0xc0,0x66,0xef,0xb8, +/*000071e0:*/0x2c,0x02,0xe8,0x61,0xe6,0xb2,0x04,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x04, +/*000071f0:*/0x80,0xe4,0x03,0x40,0x66,0xef,0xe8,0x0a,0x00,0xe8,0xd9,0xec,0x5a,0x59,0x66,0x5b, +/*00007200:*/0x66,0x58,0xc3,0x55,0xe8,0xb7,0xfa,0x5d,0xc3,0x8b,0xd8,0x80,0xf9,0x08,0x7e,0x03, +/*00007210:*/0xb4,0x01,0xc3,0x80,0xfd,0x81,0x75,0x02,0x8e,0xc2,0x80,0xf9,0x08,0x7e,0x02,0xb1, +/*00007220:*/0x08,0xe8,0x92,0x94,0xc3,0xe8,0x7d,0xe4,0xb8,0x02,0x0a,0xf6,0xc1,0x01,0x74,0x0f, +/*00007230:*/0xb2,0x51,0xec,0x24,0x0f,0x3c,0x08,0x7e,0x02,0xb0,0x08,0x8a,0xe0,0xb0,0x03,0x8a, +/*00007240:*/0xd8,0xb2,0x53,0xec,0x24,0xfa,0x0a,0xc3,0xee,0xe8,0x16,0xfd,0xc3,0x52,0xb2,0xfa, +/*00007250:*/0xe8,0x3d,0xe4,0x0b,0xc0,0x75,0x03,0xb8,0x80,0x00,0x5a,0xc3,0x53,0xbb,0xbe,0x03, +/*00007260:*/0x2e,0x8b,0x0f,0x0a,0xc9,0x74,0x08,0x38,0xe8,0x74,0x04,0x43,0x43,0xeb,0xf1,0x5b, +/*00007270:*/0xc3,0x53,0xbb,0x00,0x0f,0xe8,0x78,0xe5,0x5b,0xc3,0x53,0xbb,0x08,0x0f,0xe8,0x26, +/*00007280:*/0xe5,0x5b,0xc3,0x53,0xbb,0x2c,0x0f,0xe8,0x66,0xe5,0x5b,0xc3,0x53,0xbb,0x2c,0x0f, +/*00007290:*/0xe8,0x58,0xe5,0x5b,0xc3,0x53,0xbb,0x10,0x0f,0xe8,0x54,0xe5,0xc1,0xe8,0x04,0x5b, +/*000072a0:*/0xc3,0x53,0xbb,0x18,0x0f,0xe8,0x7a,0xe5,0x5b,0xc3,0xb4,0x0a,0xc3,0x51,0x52,0x83, +/*000072b0:*/0xc0,0x63,0x33,0xd2,0xb9,0x64,0x00,0xf7,0xf1,0x5a,0x59,0xc3,0x53,0x52,0xe8,0xe4, +/*000072c0:*/0xe3,0xb2,0x51,0xec,0x24,0x0f,0x3c,0x08,0x7e,0x02,0xb0,0x08,0x0f,0xb6,0xd8,0x2e, +/*000072d0:*/0x8a,0x87,0xd7,0x72,0x5a,0x5b,0xc3,0x00,0x04,0x08,0x10,0x10,0x18,0x20,0x10,0x10, +/*000072e0:*/0xe8,0xd9,0xff,0x04,0x04,0xc0,0xe8,0x03,0xc3,0x52,0x50,0xe8,0xb7,0xe3,0xb2,0x55, +/*000072f0:*/0xec,0x0c,0x04,0xee,0x58,0x5a,0xc3,0x52,0x50,0xe8,0xa9,0xe3,0xb2,0x55,0xec,0x24, +/*00007300:*/0xfb,0xee,0x58,0x5a,0xc3,0x00,0x0b,0x28,0x02,0x24,0x02,0x24,0x03,0x3c,0x03,0x00, +/*00007310:*/0x00,0x74,0x07,0xe0,0x15,0xe4,0x15,0xe8,0x15,0xec,0x15,0xf0,0x15,0xf4,0x15,0x70, +/*00007320:*/0x07,0x00,0x00,0x9c,0xfa,0x0a,0xc9,0x75,0x05,0xb9,0xe9,0x1a,0xeb,0x31,0x80,0xf9, +/*00007330:*/0x01,0x75,0x05,0xe8,0x32,0x00,0xeb,0x27,0x80,0xf9,0x02,0x75,0x05,0xe8,0x6f,0x01, +/*00007340:*/0xeb,0x1d,0x80,0xf9,0x03,0x75,0x1c,0x2e,0x8b,0x16,0x4a,0x01,0x0b,0xdb,0x74,0x02, +/*00007350:*/0x8b,0xd3,0xb2,0x16,0x2e,0xa1,0x46,0x01,0xef,0xe8,0x6a,0xf2,0xe8,0x7a,0xf6,0x9d, +/*00007360:*/0x33,0xc0,0xc3,0x9d,0xb8,0x00,0x01,0xc3,0x57,0x8e,0xc2,0x8b,0xdf,0x83,0xc7,0x20, +/*00007370:*/0xe8,0x4d,0xcd,0xe8,0xf0,0xcd,0xe8,0x29,0xcf,0x5b,0xe8,0x01,0x00,0xc3,0x57,0x51, +/*00007380:*/0x52,0x56,0x53,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x08,0xe8,0x17,0xe3,0xb2,0x2b, +/*00007390:*/0xec,0x24,0xcf,0xee,0xbb,0xf8,0x03,0xe8,0x1c,0xe4,0xa8,0x02,0x74,0x04,0xec,0x0c, +/*000073a0:*/0x20,0xee,0x32,0xd2,0xfc,0xb9,0x40,0x00,0x57,0x66,0xed,0x66,0xab,0x80,0xc2,0x04, +/*000073b0:*/0xe2,0xf7,0xe8,0xf0,0xe2,0xb2,0x7c,0xec,0x50,0x24,0xdf,0xee,0xe8,0x95,0x01,0xe8, +/*000073c0:*/0xe3,0xe2,0xb2,0x2b,0xec,0xa8,0x20,0x74,0x09,0xb2,0x7c,0xec,0x0c,0x20,0xee,0xe8, +/*000073d0:*/0x82,0x01,0xb2,0x7c,0x58,0xee,0xb9,0x40,0x00,0xbe,0x00,0x01,0xe8,0xe5,0x00,0xb9, +/*000073e0:*/0x40,0x00,0xbe,0x00,0x02,0xe8,0xdc,0x00,0xe8,0x01,0x01,0xe8,0xb7,0xe2,0xb2,0x2b, +/*000073f0:*/0xec,0xa8,0x20,0x74,0x09,0xb9,0x40,0x00,0xbe,0x00,0x03,0xe8,0xc6,0x00,0xb9,0x40, +/*00007400:*/0x00,0xbe,0x00,0x04,0xe8,0xbd,0x00,0x5f,0x5b,0x5e,0x5a,0x59,0x5f,0x81,0xc7,0x32, +/*00007410:*/0x0d,0xe8,0x2d,0xf5,0xe8,0xc7,0x2c,0xc3,0x66,0x50,0x53,0x51,0x52,0x56,0x57,0xe8, +/*00007420:*/0x83,0xe2,0xb8,0x8c,0x02,0xe8,0x1e,0xe4,0xb2,0x07,0x32,0xc0,0xee,0xb8,0x90,0x02, +/*00007430:*/0xe8,0x13,0xe4,0xb2,0x07,0x32,0xc0,0xee,0xfc,0x8b,0x77,0x08,0x03,0xf3,0xe8,0x64, +/*00007440:*/0xe2,0x32,0xd2,0xb9,0x40,0x00,0x66,0xad,0x66,0xef,0x80,0xc2,0x04,0xe2,0xf7,0xe8, +/*00007450:*/0x53,0xe2,0xb2,0x7c,0xec,0x50,0x24,0xdf,0xee,0xe8,0x14,0x01,0xe8,0x46,0xe2,0xb2, +/*00007460:*/0x2b,0xec,0xa8,0x20,0x74,0x09,0xb2,0x7c,0xec,0x0c,0x20,0xee,0xe8,0x01,0x01,0xb2, +/*00007470:*/0x7c,0x58,0xee,0xb9,0x40,0x00,0xbf,0x00,0x01,0xe8,0x5c,0x00,0xb9,0x40,0x00,0xbf, +/*00007480:*/0x00,0x02,0xe8,0x53,0x00,0xe8,0x98,0x00,0xb2,0x2b,0xec,0xa8,0x20,0x74,0x09,0xb9, +/*00007490:*/0x40,0x00,0xbf,0x00,0x03,0xe8,0x40,0x00,0xb9,0x40,0x00,0xbf,0x00,0x04,0xe8,0x37, +/*000074a0:*/0x00,0x5f,0x5e,0x5a,0x59,0x5b,0x66,0x58,0xe8,0xde,0xf4,0xe8,0x96,0x2c,0xc3,0x8b, +/*000074b0:*/0xc3,0x8b,0xdf,0x8e,0xda,0xe8,0x60,0xff,0x1e,0x07,0xe8,0xf7,0xcc,0xe8,0x8b,0xcd, +/*000074c0:*/0xe8,0x2c,0xce,0xc3,0xb2,0x00,0x66,0x0f,0xb7,0xc6,0x66,0xef,0xb2,0x04,0x66,0xed, +/*000074d0:*/0x66,0xab,0x83,0xc6,0x04,0xe2,0xed,0xc3,0xb2,0x00,0x66,0x0f,0xb7,0xc7,0x66,0xef, +/*000074e0:*/0xb2,0x04,0x66,0xad,0x66,0xef,0x83,0xc7,0x04,0xe2,0xed,0xc3,0x56,0x50,0x52,0xe8, +/*000074f0:*/0xb3,0xe1,0xbe,0x05,0x73,0xe8,0x11,0x00,0xb2,0x2b,0xec,0xa8,0x10,0x75,0x06,0xbe, +/*00007500:*/0x11,0x73,0xe8,0x04,0x00,0x5a,0x58,0x5e,0xc3,0xb2,0x00,0x2e,0x8b,0x04,0x83,0xf8, +/*00007510:*/0x00,0x74,0x0c,0xef,0xb2,0x04,0x66,0xed,0x66,0xab,0x83,0xc6,0x02,0xeb,0xea,0xc3, +/*00007520:*/0x57,0x50,0x52,0xe8,0x7f,0xe1,0xbf,0x05,0x73,0xe8,0x11,0x00,0xb2,0x2b,0xec,0xa8, +/*00007530:*/0x10,0x75,0x06,0xbf,0x11,0x73,0xe8,0x04,0x00,0x5a,0x58,0x5f,0xc3,0xb2,0x00,0x2e, +/*00007540:*/0x8b,0x05,0x83,0xf8,0x00,0x74,0x0c,0xef,0xb2,0x04,0x66,0xad,0x66,0xef,0x83,0xc7, +/*00007550:*/0x02,0xeb,0xea,0xc3,0x51,0xb9,0x00,0x01,0xe8,0x4a,0xe1,0xb2,0xb2,0xed,0x50,0x32, +/*00007560:*/0xc0,0xee,0xb2,0xb8,0x66,0xed,0x66,0xab,0xe2,0xf8,0xb2,0xb2,0x58,0xee,0x59,0xc3, +/*00007570:*/0x51,0xb9,0x00,0x01,0xe8,0x2e,0xe1,0xb2,0xb2,0xed,0x50,0x32,0xc0,0xee,0xb2,0xb8, +/*00007580:*/0x66,0xad,0x66,0xef,0xe2,0xf8,0xb2,0xb0,0x58,0xee,0x59,0xc3,0x08,0x1f,0x00,0x58, +/*00007590:*/0xf0,0x01,0x68,0x00,0x03,0x6c,0x00,0x03,0xe2,0x0f,0x00,0x00,0x42,0x70,0x00,0xc0, +/*000075a0:*/0x10,0x11,0x00,0x1a,0x00,0x80,0x26,0x00,0x40,0x2a,0x10,0x40,0x4c,0xff,0xff,0x4e, +/*000075b0:*/0x1f,0x00,0x00,0x51,0x52,0x53,0xe8,0xec,0xe0,0xb2,0x55,0xec,0x50,0x0c,0x80,0xee, +/*000075c0:*/0xbb,0x80,0x02,0x66,0xb8,0x30,0xb6,0x01,0x00,0x0a,0xc1,0xe8,0xab,0xe1,0xb2,0x58, +/*000075d0:*/0xed,0x50,0x25,0xfc,0x7f,0x0c,0x0a,0xef,0xe8,0x67,0xf8,0xec,0x8a,0xc8,0x58,0xef, +/*000075e0:*/0x58,0xb2,0x55,0xee,0x66,0x33,0xc0,0xe8,0x8f,0xe1,0xf6,0xc1,0x80,0x5b,0x5a,0x59, +/*000075f0:*/0xc3,0x51,0xb8,0x08,0x00,0xb5,0x3f,0xe8,0x3f,0xf2,0xb1,0xc0,0xe8,0xb4,0xff,0x74, +/*00007600:*/0x04,0xb0,0x02,0xeb,0x0b,0xb1,0x40,0xe8,0xa9,0xff,0xb0,0x00,0x74,0x02,0xb0,0x01, +/*00007610:*/0x50,0xb8,0x08,0xc0,0xb5,0xff,0xe8,0x20,0xf2,0x58,0x59,0xc3,0x51,0x52,0x53,0xe8, +/*00007620:*/0x83,0xe0,0xbb,0xf8,0x03,0xe8,0x7f,0xe1,0x50,0x0c,0x80,0xe8,0xd4,0xe0,0xe8,0x7b, +/*00007630:*/0xe1,0x0c,0x02,0xe8,0xd1,0xe0,0xb1,0xc0,0xbb,0x8c,0x08,0xe8,0xe4,0xe1,0x66,0x50, +/*00007640:*/0x66,0xb8,0x13,0x02,0x00,0x00,0xe8,0x30,0xe1,0xbb,0x80,0x02,0x66,0xb8,0x03,0x80, +/*00007650:*/0x01,0x00,0x0a,0xc1,0xe8,0x22,0xe1,0xb2,0x7c,0xec,0x50,0x0c,0x82,0xee,0xe8,0xb8, +/*00007660:*/0xf8,0xed,0x8a,0xcc,0x58,0xee,0xbb,0x80,0x02,0x66,0x33,0xc0,0xe8,0x0a,0xe1,0x66, +/*00007670:*/0x58,0xbb,0x8c,0x08,0xe8,0x02,0xe1,0xbb,0xf8,0x03,0x58,0xe8,0x84,0xe0,0x32,0xc0, +/*00007680:*/0xf6,0xc1,0x08,0x74,0x02,0xb0,0x02,0x5b,0x5a,0x59,0xc3,0x51,0x52,0xe8,0x61,0xff, +/*00007690:*/0xb4,0x03,0xe8,0x0d,0xeb,0xe8,0x84,0xff,0xb4,0x03,0xe8,0xfc,0xea,0x5a,0x59,0xc3, +/*000076a0:*/0x52,0x32,0xe4,0x33,0xd2,0xb0,0x0d,0xcd,0x17,0xf6,0xc4,0x29,0x75,0x08,0x32,0xe4, +/*000076b0:*/0x33,0xd2,0xb0,0x0a,0xcd,0x17,0x5a,0xc3,0x06,0x1e,0x60,0xe8,0x2e,0x01,0x2e,0x83, +/*000076c0:*/0x0e,0x5a,0x56,0x00,0x75,0x6e,0x80,0x3e,0x00,0x05,0x01,0x74,0x67,0xc6,0x06,0x00, +/*000076d0:*/0x05,0x01,0x8a,0x1e,0x62,0x04,0x32,0xff,0xd1,0xe3,0x8b,0xfb,0x8b,0x85,0x50,0x04, +/*000076e0:*/0x8a,0x3e,0x62,0x04,0x50,0x32,0xf6,0x8a,0x0e,0x84,0x04,0x32,0xed,0x41,0x51,0x8b, +/*000076f0:*/0x0e,0x4a,0x04,0x32,0xd2,0xe8,0xa8,0xff,0xf6,0xc4,0x29,0x75,0x3d,0x51,0x52,0x89, +/*00007700:*/0x95,0x50,0x04,0xb4,0x08,0xe8,0x6c,0xa5,0x0a,0xc0,0x75,0x02,0xb0,0x20,0x33,0xd2, +/*00007710:*/0x32,0xe4,0xcd,0x17,0xf6,0xc4,0x29,0x75,0x1f,0x5a,0xfe,0xc2,0x59,0xe2,0xde,0xfe, +/*00007720:*/0xc6,0x59,0xe2,0xca,0xe8,0x79,0xff,0x32,0xc0,0xa2,0x00,0x05,0x58,0x89,0x85,0x50, +/*00007730:*/0x04,0xe8,0xe4,0x03,0x61,0x1f,0x07,0xcf,0x5a,0x59,0x59,0xb0,0xff,0xeb,0xea,0x52, +/*00007740:*/0x2a,0xf5,0x38,0xc6,0x7d,0x02,0x32,0xc0,0x2e,0x8e,0x06,0x52,0x56,0x5a,0xc3,0xa0, +/*00007750:*/0x85,0x04,0xf6,0xe3,0x8a,0xf7,0x8b,0xd8,0x8b,0xca,0xba,0xc4,0x03,0xb8,0x02,0x0f, +/*00007760:*/0xef,0xb4,0x02,0xe8,0x6d,0x00,0x8b,0xd1,0x32,0xed,0x8a,0xe6,0x8a,0xc6,0xf3,0xaa, +/*00007770:*/0x03,0xfd,0x8a,0xca,0x4b,0x75,0xf7,0x32,0xe4,0xe8,0x57,0x00,0xc3,0x53,0x8a,0x1e, +/*00007780:*/0x62,0x04,0x0b,0xc0,0x75,0x04,0x0a,0xdb,0x74,0x03,0xe8,0x6a,0x03,0x5b,0x8b,0xf8, +/*00007790:*/0x2b,0xd1,0x81,0xc2,0x01,0x01,0x8a,0xc3,0x32,0xe4,0xc3,0x8a,0xc6,0x32,0xf6,0x2b, +/*000077a0:*/0xea,0x0a,0xdb,0x74,0x2a,0x2a,0xc3,0xf6,0x26,0x85,0x04,0x8b,0xc8,0x52,0xb4,0x01, +/*000077b0:*/0xe8,0x20,0x00,0xb2,0xc4,0xb8,0x02,0x0f,0xef,0x5a,0x1e,0x06,0x1f,0x8b,0xc1,0x8b, +/*000077c0:*/0xca,0xf3,0xa4,0x03,0xf5,0x03,0xfd,0x48,0x75,0xf5,0x1f,0xe8,0x81,0xff,0xc3,0x8a, +/*000077d0:*/0xd8,0xeb,0xf8,0xba,0xce,0x03,0xb0,0x05,0xee,0x42,0xec,0x24,0xfc,0x0a,0xc4,0xee, +/*000077e0:*/0x4a,0xc3,0x9c,0xfa,0xee,0x42,0xeb,0x00,0xec,0x4a,0x9d,0xc3,0x2e,0x8e,0x1e,0x50, +/*000077f0:*/0x56,0xc3,0x1e,0x2e,0x8e,0x1e,0x50,0x56,0x8b,0x16,0x63,0x04,0x80,0xc2,0x06,0x1f, +/*00007800:*/0xc3,0x1e,0x2e,0x8e,0x1e,0x50,0x56,0x8b,0x16,0x63,0x04,0x1f,0xc3,0x51,0xb9,0x01, +/*00007810:*/0x00,0xe8,0x0b,0x00,0x59,0xc3,0x51,0xb9,0x02,0x00,0xe8,0x02,0x00,0x59,0xc3,0x50, +/*00007820:*/0x51,0xb0,0xb6,0xe6,0x43,0xb0,0x33,0xe6,0x42,0xb0,0x05,0xe6,0x42,0xe4,0x61,0x8a, +/*00007830:*/0xe0,0x0c,0x03,0xe6,0x61,0x8a,0xc4,0x50,0x51,0xb9,0x19,0x00,0xe8,0xda,0xf6,0xe2, +/*00007840:*/0xfb,0x59,0x58,0xe6,0x61,0x59,0x58,0xc3,0x50,0xba,0xcc,0x03,0xec,0xb2,0xd4,0xa8, +/*00007850:*/0x01,0x75,0x02,0xb2,0xb4,0x58,0xc3,0xe8,0xee,0xff,0x80,0xc2,0x06,0xc3,0xe8,0xf6, +/*00007860:*/0xff,0xec,0xc3,0x0b,0xc0,0x74,0x03,0xe8,0x07,0x02,0x03,0x06,0x4e,0x04,0x81,0xc2, +/*00007870:*/0x01,0x01,0x2b,0xd1,0x32,0xed,0x8b,0x2e,0x4a,0x04,0x8b,0xf8,0x8b,0xf0,0x8b,0xc5, +/*00007880:*/0xf6,0xe3,0xd1,0xe0,0xd1,0xe5,0x0a,0xdb,0x75,0x02,0x8a,0xde,0x38,0xf3,0x7e,0x02, +/*00007890:*/0x8a,0xde,0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x54,0x56,0xa0,0x10,0x04,0x24,0x30, +/*000078a0:*/0x3c,0x30,0x74,0x05,0x2e,0x8e,0x06,0x56,0x56,0x8b,0xc1,0xe8,0xb5,0xff,0x03,0xf0, +/*000078b0:*/0x3a,0x16,0x4a,0x04,0x74,0x06,0x06,0x1f,0xe8,0x2e,0x00,0xc3,0x06,0x1f,0xe8,0x53, +/*000078c0:*/0x00,0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x54,0x56,0xa0,0x10,0x04,0x24,0x30,0x3c, +/*000078d0:*/0x30,0x74,0x05,0x2e,0x8e,0x06,0x56,0x56,0x8a,0xc1,0x8a,0xe6,0xe8,0x84,0xff,0xf7, +/*000078e0:*/0xdd,0x2b,0xf0,0x06,0x1f,0xe8,0x01,0x00,0xc3,0x53,0x8a,0xce,0x2a,0xcb,0x32,0xed, +/*000078f0:*/0x32,0xf6,0x2b,0xea,0x2b,0xea,0xe3,0x0e,0x8a,0xe1,0x8b,0xca,0xf3,0xa5,0x03,0xf5, +/*00007900:*/0x03,0xfd,0xfe,0xcc,0x75,0xf4,0x58,0xb0,0x20,0x8a,0xca,0xf3,0xab,0x03,0xfd,0xfe, +/*00007910:*/0xcb,0x75,0xf6,0xc3,0x53,0x8a,0xc6,0x2a,0xc3,0x74,0x06,0xf6,0xe2,0x8b,0xc8,0xf3, +/*00007920:*/0xa5,0x58,0x8b,0xc8,0xf6,0xe2,0x91,0xb0,0x20,0xf3,0xab,0xc3,0x8b,0xd8,0xe8,0x2e, +/*00007930:*/0x00,0x2e,0x8e,0x1e,0x56,0x56,0x8a,0xc3,0x22,0xdf,0xd3,0xe3,0xa8,0x80,0x74,0x03, +/*00007940:*/0x30,0x1c,0xc3,0xf6,0xd7,0x8a,0x34,0x22,0xf7,0x0a,0xde,0x88,0x1c,0xc3,0x8a,0xfc, +/*00007950:*/0xe8,0x0c,0x00,0x2e,0x8e,0x1e,0x56,0x56,0x8a,0x04,0xd2,0xe8,0x22,0xc7,0xc3,0xb0, +/*00007960:*/0x28,0xf6,0xe2,0xf6,0xc2,0x01,0x74,0x03,0x05,0xd8,0x1f,0x8b,0xf1,0xc1,0xee,0x02, +/*00007970:*/0x80,0xff,0x05,0x7f,0x0c,0x03,0xf0,0xf6,0xd1,0x80,0xe1,0x03,0xd0,0xe1,0xb7,0x03, +/*00007980:*/0xc3,0xd1,0xee,0x03,0xf0,0xf6,0xd1,0x80,0xe1,0x07,0xb7,0x01,0xc3,0xfc,0x8a,0xd8, +/*00007990:*/0x2e,0x8e,0x06,0x56,0x56,0x8b,0xc1,0xe8,0x86,0x00,0x75,0x02,0x8a,0xde,0x03,0xf0, +/*000079a0:*/0xe8,0x24,0x00,0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x56,0x56,0x8a,0xc1,0x8a,0xe6, +/*000079b0:*/0xe8,0x6d,0x00,0x75,0x02,0x8a,0xde,0xf7,0xdd,0x81,0xc6,0xf0,0x00,0x81,0xc7,0xf0, +/*000079c0:*/0x00,0x2b,0xf0,0xe8,0x01,0x00,0xc3,0x8a,0xce,0x2a,0xcb,0xe3,0x2c,0x51,0x8a,0xca, +/*000079d0:*/0x56,0x57,0xd1,0xe9,0xf3,0xa5,0x13,0xc9,0xf3,0xa4,0x8a,0xca,0x2b,0xf1,0x2b,0xf9, +/*000079e0:*/0x81,0xc6,0x00,0x20,0x81,0xc7,0x00,0x20,0xd1,0xe9,0xf3,0xa5,0x13,0xc9,0xf3,0xa4, +/*000079f0:*/0x5f,0x5e,0x03,0xf5,0x03,0xfd,0x59,0xe2,0xd4,0x8a,0xc7,0x8a,0xe7,0x8a,0xca,0x57, +/*00007a00:*/0xd1,0xe9,0xf3,0xab,0x13,0xc9,0xf3,0xaa,0x8a,0xca,0x2b,0xf9,0x81,0xc7,0x00,0x20, +/*00007a10:*/0xd1,0xe9,0xf3,0xab,0x13,0xc9,0xf3,0xaa,0x5f,0x03,0xfd,0xfe,0xcb,0x75,0xde,0xc3, +/*00007a20:*/0xe8,0xb0,0x00,0x81,0xc2,0x01,0x01,0x2b,0xd1,0x38,0xf3,0x76,0x02,0x32,0xdb,0x51, +/*00007a30:*/0xb1,0x02,0xd2,0xe6,0xd2,0xe3,0x59,0x32,0xed,0xbd,0x50,0x00,0x80,0x3e,0x49,0x04, +/*00007a40:*/0x06,0x74,0x04,0xd0,0xe2,0xd1,0xe0,0x06,0x1f,0x8b,0xf8,0x8b,0xf0,0xb0,0x50,0xf6, +/*00007a50:*/0xe3,0x0a,0xdb,0xc3,0x52,0x53,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04, +/*00007a60:*/0xe8,0x0e,0x00,0x50,0xd1,0xeb,0xa1,0x4c,0x04,0xf7,0xe3,0x5b,0x03,0xc3,0x5b,0x5a, +/*00007a70:*/0xc3,0x52,0x8b,0xd0,0xa0,0x4a,0x04,0xf6,0xe4,0x32,0xf6,0x03,0xc2,0xd1,0xe0,0x5a, +/*00007a80:*/0xc3,0x8b,0xe8,0x83,0xe5,0x0f,0x2e,0x8a,0xa6,0x99,0x7a,0x8b,0xe8,0xc1,0xed,0x04, +/*00007a90:*/0x83,0xe5,0x0f,0x2e,0x8a,0x86,0x99,0x7a,0xc3,0x00,0x03,0x0c,0x0f,0x30,0x33,0x3c, +/*00007aa0:*/0x3f,0xc0,0xc3,0xcc,0xcf,0xf0,0xf3,0xfc,0xff,0x26,0x8b,0x04,0x86,0xe0,0xba,0x00, +/*00007ab0:*/0x80,0xf6,0xc4,0xc0,0x74,0x02,0x0a,0xd6,0xd0,0xee,0xc1,0xe0,0x02,0x75,0xf2,0x88, +/*00007ac0:*/0x56,0x00,0x45,0xc3,0x8b,0x16,0x63,0x04,0x8a,0xc5,0x86,0xe0,0xef,0x8a,0xe1,0xfe, +/*00007ad0:*/0xc0,0xef,0xc3,0x52,0x8b,0xd0,0x8a,0xc4,0xf6,0x26,0x4a,0x04,0xc1,0xe0,0x02,0x32, +/*00007ae0:*/0xf6,0x03,0xc2,0x5a,0xc3,0x53,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04, +/*00007af0:*/0xd1,0xeb,0xe8,0x02,0x00,0x5b,0xc3,0x52,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0xf6, +/*00007b00:*/0x26,0x85,0x04,0xf7,0x26,0x4a,0x04,0x5a,0x03,0xc2,0x0a,0xdb,0x74,0x08,0x03,0x06, +/*00007b10:*/0x4c,0x04,0xfe,0xcb,0x75,0xf8,0x5a,0xc3,0x52,0x8b,0xd0,0xa0,0x4a,0x04,0xf6,0xe4, +/*00007b20:*/0x32,0xf6,0x03,0xc2,0xd1,0xe0,0x03,0x06,0x4e,0x04,0xd1,0xf8,0x8b,0xc8,0xb4,0x0e, +/*00007b30:*/0xe8,0x91,0xff,0x5a,0xc3,0x8b,0xc2,0xf7,0x26,0x4a,0x04,0x8b,0xf9,0xc1,0xef,0x03, +/*00007b40:*/0x03,0xf8,0x0a,0xff,0x74,0x0a,0x8a,0xc7,0x32,0xe4,0xf7,0x26,0x4c,0x04,0x03,0xf8, +/*00007b50:*/0x80,0xe1,0x07,0xb4,0x80,0xd2,0xec,0xc3,0xe8,0xfc,0xfc,0xec,0xc3,0xe8,0xf8,0xff, +/*00007b60:*/0xb2,0xc0,0xb0,0x20,0xee,0xc3,0xe8,0xef,0xff,0xb2,0xc0,0xb0,0x00,0xee,0xc3,0xc4, +/*00007b70:*/0x3e,0xa8,0x04,0x26,0xc4,0x7d,0x04,0x8c,0xc5,0x0b,0xef,0xc3,0x53,0xb0,0x0e,0xe8, +/*00007b80:*/0x60,0xfc,0x8a,0xe0,0xb0,0x0f,0xe8,0x59,0xfc,0x8b,0xd8,0xb8,0x0e,0xaa,0xef,0xb8, +/*00007b90:*/0x0f,0x55,0xef,0xb0,0x0e,0xe8,0x4a,0xfc,0x3c,0xaa,0x74,0x0d,0xb0,0x0f,0xe8,0x41, +/*00007ba0:*/0xfc,0x3c,0x55,0x74,0x04,0x32,0xc0,0x5b,0xc3,0xb0,0x0e,0x8a,0xe7,0xef,0xfe,0xc0, +/*00007bb0:*/0x8a,0xe3,0xef,0xb0,0x01,0x0a,0xc0,0x5b,0xc3,0x8a,0xee,0x8a,0x36,0x85,0x04,0x06, +/*00007bc0:*/0x1f,0x0a,0xdb,0x74,0x25,0x8a,0xc5,0x2a,0xc3,0xf6,0xe6,0x8b,0xc8,0x52,0x32,0xf6, +/*00007bd0:*/0xc1,0xe2,0x02,0x8b,0xc2,0xd1,0xe2,0x2b,0xd5,0x51,0x8b,0xc8,0xf3,0xa5,0x2b,0xfa, +/*00007be0:*/0x2b,0xf2,0x59,0xe2,0xf4,0x5a,0xe8,0x05,0x00,0xc3,0x8a,0xdd,0xeb,0xf8,0x8a,0xc6, +/*00007bf0:*/0xf6,0xe3,0x8b,0xc8,0x8a,0xc7,0x8a,0xe0,0x32,0xf6,0xc1,0xe2,0x02,0x8b,0xda,0xd1, +/*00007c00:*/0xe2,0x8b,0xf1,0x2b,0xd5,0x8b,0xcb,0xf3,0xab,0x2b,0xfa,0x4e,0x75,0xf7,0xc3,0xe8, +/*00007c10:*/0xda,0xfb,0x89,0x0e,0x60,0x04,0x8a,0xc5,0x24,0x60,0xa8,0x20,0x74,0x06,0xb9,0x00, +/*00007c20:*/0x1e,0xe9,0x97,0x00,0xf6,0x06,0x87,0x04,0x01,0x74,0x03,0xe9,0x8d,0x00,0x80,0x3e, +/*00007c30:*/0x49,0x04,0x07,0x74,0x08,0x80,0x3e,0x49,0x04,0x04,0x7c,0x01,0xc3,0xf6,0x06,0x87, +/*00007c40:*/0x04,0x08,0x74,0x03,0xe9,0x74,0xa0,0x8a,0x36,0x85,0x04,0x8a,0xd6,0xfe,0xca,0x38, +/*00007c50:*/0xcd,0x7e,0x1f,0x0a,0xc9,0x74,0x64,0x8a,0xe9,0x8a,0xce,0xfe,0xc9,0xeb,0x5c,0x38, +/*00007c60:*/0xd1,0x74,0x58,0x8a,0xce,0x80,0xfd,0x03,0x7c,0x04,0x8a,0xe9,0xd0,0xed,0xfe,0xc9, +/*00007c70:*/0xeb,0x49,0x80,0xf9,0x03,0x7e,0x44,0x8a,0xe1,0x2a,0xe5,0x0a,0xe4,0x75,0x0a,0x38, +/*00007c80:*/0xca,0x74,0x38,0xfe,0xca,0x38,0xca,0x74,0x32,0x8a,0xc5,0x0a,0xc1,0x38,0xf0,0x7e, +/*00007c90:*/0x0a,0x80,0xfc,0x02,0x7e,0x12,0x80,0xfd,0x02,0x7f,0xc8,0x80,0xfc,0x03,0x7d,0xbf, +/*00007ca0:*/0x8a,0xd6,0xfe,0xca,0x38,0xd1,0x74,0x13,0x8a,0xce,0xfe,0xc9,0xfe,0xc9,0x8a,0xe9, +/*00007cb0:*/0x2a,0xec,0x80,0xfe,0x08,0x7f,0x04,0xfe,0xc1,0xfe,0xc5,0xb4,0x0a,0xe8,0x04,0xfe, +/*00007cc0:*/0xc3,0x1e,0x52,0x06,0x1f,0x51,0x56,0x57,0x33,0xdb,0x8b,0xc6,0x03,0xc2,0x73,0x0b, +/*00007cd0:*/0xb0,0x01,0xe8,0xae,0x00,0x81,0xc6,0x00,0x80,0xb7,0xff,0x8b,0xc7,0x03,0xc2,0x73, +/*00007ce0:*/0x0b,0xb0,0x01,0xe8,0xa5,0x00,0x81,0xc7,0x00,0x80,0xb3,0xff,0x8b,0xca,0xd1,0xe9, +/*00007cf0:*/0xf3,0xa5,0x0b,0xdb,0x74,0x12,0x0a,0xff,0x74,0x05,0xb0,0xff,0xe8,0x84,0x00,0x0a, +/*00007d00:*/0xdb,0x74,0x05,0xb0,0xff,0xe8,0x83,0x00,0x5f,0x5e,0x59,0xe8,0x40,0x00,0xe2,0xb5, +/*00007d10:*/0x5a,0x1f,0xc3,0xa0,0x85,0x04,0xf6,0xe3,0x8b,0xc8,0x51,0x52,0x32,0xdb,0x8b,0xf7, +/*00007d20:*/0x8b,0xc7,0x03,0xc2,0x73,0x0b,0xb0,0x01,0xe8,0x60,0x00,0x81,0xc7,0x00,0x80,0xb3, +/*00007d30:*/0xff,0x8a,0xc7,0x8a,0xe7,0x8b,0xca,0xd1,0xe9,0xf3,0xab,0x0a,0xdb,0x74,0x05,0xb0, +/*00007d40:*/0xff,0xe8,0x47,0x00,0x8b,0xfe,0xe8,0x1f,0x00,0x5a,0x59,0xe2,0xcd,0xc3,0x8b,0xc6, +/*00007d50:*/0x0b,0xed,0x78,0x0b,0x03,0xf5,0x73,0x10,0xb0,0x02,0xe8,0x26,0x00,0xeb,0x09,0x03, +/*00007d60:*/0xf5,0x72,0x05,0xb0,0xfe,0xe8,0x1b,0x00,0x8b,0xc7,0x0b,0xed,0x78,0x0b,0x03,0xfd, +/*00007d70:*/0x73,0x10,0xb0,0x02,0xe8,0x14,0x00,0xeb,0x09,0x03,0xfd,0x72,0x05,0xb0,0xfe,0xe8, +/*00007d80:*/0x09,0x00,0xc3,0x50,0x8a,0xe0,0xe8,0x0a,0xa5,0x58,0xc3,0x50,0x8a,0xe0,0xe8,0x0e, +/*00007d90:*/0xa5,0x58,0xc3,0x66,0x8b,0xc7,0x66,0xc1,0xe8,0x0c,0x24,0xfe,0xe8,0xee,0xa4,0x66, +/*00007da0:*/0x8b,0xc6,0x66,0xc1,0xe8,0x0c,0x24,0xfe,0xe8,0xd2,0xa4,0xc1,0xe6,0x03,0xc1,0xe7, +/*00007db0:*/0x03,0xc1,0xe5,0x03,0xc1,0xe2,0x03,0x0a,0xdb,0x74,0x13,0x8a,0xc5,0x2a,0xc3,0xf6, +/*00007dc0:*/0x26,0x85,0x04,0x8b,0xc8,0x53,0xe8,0xf8,0xfe,0x5b,0xe8,0x46,0xff,0xc3,0x8a,0xdd, +/*00007dd0:*/0xeb,0xf8,0x66,0x57,0x66,0x56,0x66,0x52,0x66,0x50,0xe8,0x62,0xf9,0x8a,0xd8,0x8b, +/*00007de0:*/0xc1,0xe8,0x26,0x00,0x66,0x8b,0xf8,0x8b,0xc1,0x02,0xe3,0xe8,0x1c,0x00,0x66,0x8b, +/*00007df0:*/0xf0,0x2b,0xd1,0xfe,0xc6,0x8a,0xee,0x32,0xf6,0x42,0x8b,0x2e,0x4a,0x04,0xe8,0x92, +/*00007e00:*/0xff,0x66,0x58,0x66,0x5a,0x66,0x5e,0x66,0x5f,0xc3,0x53,0x52,0x50,0x8a,0xc4,0xf6, +/*00007e10:*/0x26,0x85,0x04,0x66,0x33,0xd2,0x8b,0x16,0x4a,0x04,0x66,0xf7,0xe2,0x66,0x33,0xd2, +/*00007e20:*/0x5a,0x32,0xf6,0x66,0x03,0xc2,0x5a,0x5b,0xc3,0xc3,0xe8,0xbf,0xf9,0xa2,0x62,0x04, +/*00007e30:*/0x32,0xe4,0x8b,0xf0,0xf7,0x26,0x4c,0x04,0xa3,0x4e,0x04,0x8b,0xc8,0x80,0x3e,0x49, +/*00007e40:*/0x04,0x07,0x77,0x02,0xd1,0xf9,0xb4,0x0c,0xe8,0x79,0xfc,0xd1,0xe6,0x8b,0x84,0x50, +/*00007e50:*/0x04,0xe8,0xc4,0xfc,0xe9,0x6b,0x9e,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04, +/*00007e60:*/0x80,0xfc,0x07,0x77,0x13,0x74,0x05,0x80,0xfc,0x03,0x7f,0x06,0xe8,0x24,0xfa,0xe9, +/*00007e70:*/0x50,0x9e,0xe8,0x18,0xfb,0xe9,0x4a,0x9e,0x80,0xfc,0x13,0x7c,0x24,0x74,0x42,0x80, +/*00007e80:*/0xfc,0x6a,0x74,0x1d,0x80,0xfc,0x7a,0x74,0x18,0x80,0xfc,0x40,0x0f,0x82,0x32,0x9e, +/*00007e90:*/0x80,0xfc,0x5f,0x76,0x58,0x80,0xfc,0x60,0x0f,0x8c,0x26,0x9e,0x80,0xfc,0x6f,0x76, +/*00007ea0:*/0x46,0xe8,0x9b,0xf8,0x8a,0xd8,0x8b,0xc1,0xe8,0xd2,0xf8,0x8b,0x2e,0x4a,0x04,0x52, +/*00007eb0:*/0xf6,0x26,0x85,0x04,0xf7,0xe5,0x8b,0xf7,0x03,0xf0,0x5a,0xe8,0xdd,0xf8,0xe9,0x01, +/*00007ec0:*/0x9e,0xe8,0x7b,0xf8,0x8a,0xd8,0x8b,0xc1,0xe8,0xb2,0xf8,0xc1,0xe7,0x03,0x52,0x8b, +/*00007ed0:*/0x2e,0x4a,0x04,0xc1,0xe5,0x03,0xf7,0x26,0x85,0x04,0xf7,0xe5,0x8b,0xf7,0x03,0xf0, +/*00007ee0:*/0x5a,0xe8,0xd5,0xfc,0xe9,0xdb,0x9d,0xe8,0xe8,0xfe,0xe9,0xd5,0x9d,0xd0,0xe1,0xd0, +/*00007ef0:*/0xe2,0xfe,0xc2,0xd1,0x26,0x4a,0x04,0xe8,0xd8,0xfe,0x33,0xc0,0x8e,0xd8,0xd1,0x2e, +/*00007f00:*/0x4a,0x04,0xe9,0xbd,0x9d,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc, +/*00007f10:*/0x07,0x74,0x07,0x77,0x46,0x80,0xfc,0x03,0x7f,0x06,0xe8,0xa5,0xf9,0xe9,0xa2,0x9d, +/*00007f20:*/0xe8,0x81,0xfa,0xe9,0x9c,0x9d,0xe8,0x16,0xf8,0x8a,0xd8,0x8a,0xc1,0x8a,0xe6,0xfe, +/*00007f30:*/0xc4,0xe8,0x49,0xf8,0x2b,0x3e,0x4a,0x04,0xc1,0xe7,0x03,0x52,0xf7,0x26,0x85,0x04, +/*00007f40:*/0xf7,0x26,0x4a,0x04,0xc1,0xe0,0x03,0x8b,0xf7,0x2b,0xf0,0x5a,0x8b,0x2e,0x4a,0x04, +/*00007f50:*/0xc1,0xe5,0x03,0xf7,0xdd,0xe8,0x61,0xfc,0xe9,0x67,0x9d,0x80,0xfc,0x13,0x7c,0x0c, +/*00007f60:*/0x74,0xc4,0x80,0xfc,0x6a,0x74,0x05,0x80,0xfc,0x7a,0x74,0x00,0xe8,0xd0,0xf7,0x8a, +/*00007f70:*/0xd8,0x8a,0xc1,0x8a,0xe6,0xfe,0xc4,0xe8,0x03,0xf8,0x52,0x8b,0x2e,0x4a,0x04,0xf7, +/*00007f80:*/0x26,0x85,0x04,0xf7,0xe5,0x2b,0xfd,0x8b,0xf7,0x2b,0xf0,0x5a,0xf7,0xdd,0xe8,0x0a, +/*00007f90:*/0xf8,0xe9,0x2e,0x9d,0x2e,0x8e,0x1e,0x50,0x56,0x2e,0x8e,0x06,0x56,0x56,0x80,0x3e, +/*00007fa0:*/0x49,0x04,0x03,0x7e,0x11,0x80,0x3e,0x49,0x04,0x07,0x7c,0x1a,0x2e,0x8e,0x06,0x54, +/*00007fb0:*/0x56,0x74,0x03,0xe9,0xb3,0x00,0xe8,0x9b,0xfa,0x8b,0xd8,0x26,0x8b,0x07,0x8b,0xec, +/*00007fc0:*/0x89,0x46,0x1c,0xe9,0xfc,0x9c,0xa1,0x50,0x04,0xe8,0x07,0xfb,0x8b,0xf0,0xbb,0x08, +/*00007fd0:*/0x00,0x2b,0xe3,0x8b,0xec,0x80,0x3e,0x49,0x04,0x06,0x75,0x1f,0xb9,0x04,0x00,0x26, +/*00007fe0:*/0x8a,0x04,0x88,0x46,0x00,0x45,0x26,0x8a,0x84,0x00,0x20,0x88,0x46,0x00,0x45,0x83, +/*00007ff0:*/0xc6,0x50,0xe2,0xeb,0xb8,0x00,0x02,0xb2,0x80,0xeb,0x17,0xd1,0xe6,0xb9,0x04,0x00, +/*00008000:*/0xe8,0xa6,0xfa,0x81,0xc6,0x00,0x20,0xe8,0x9f,0xfa,0x81,0xee,0xb0,0x1f,0xe2,0xf0, +/*00008010:*/0xeb,0xe2,0x2b,0xeb,0xc4,0x3e,0x0c,0x01,0x32,0xf6,0x80,0xfb,0x0e,0x75,0x09,0x26, +/*00008020:*/0x83,0x7d,0xfe,0x10,0x75,0x02,0xb6,0x80,0x16,0x1f,0x8b,0xf5,0x8b,0xcb,0xf6,0xc6, +/*00008030:*/0x80,0x74,0x01,0x47,0x56,0x57,0xf3,0xa6,0x5f,0x5e,0x74,0x21,0xfe,0xc0,0x03,0xfb, +/*00008040:*/0xf6,0xc6,0x80,0x74,0x01,0x47,0xfe,0xca,0x75,0xe2,0xfe,0xcc,0x74,0x0d,0xe8,0x9b, +/*00008050:*/0xf7,0xc4,0x3e,0x7c,0x00,0xb0,0x80,0xb2,0x80,0xeb,0xcd,0x32,0xc0,0x8b,0xe5,0x03, +/*00008060:*/0xe3,0x8b,0xec,0x89,0x46,0x1c,0xe9,0x59,0x9c,0x80,0x3e,0x49,0x04,0x13,0x7c,0x12, +/*00008070:*/0x75,0x02,0xeb,0x67,0x80,0x3e,0x49,0x04,0x6a,0x74,0x07,0x80,0x3e,0x49,0x04,0x7a, +/*00008080:*/0x74,0x00,0x2e,0x8e,0x06,0x52,0x56,0xe8,0x5b,0xfa,0x8b,0xf0,0x8b,0x1e,0x85,0x04, +/*00008090:*/0x2b,0xe3,0x8b,0xec,0xb8,0x05,0x08,0xb9,0x05,0x00,0xba,0xce,0x03,0x80,0x3e,0x49, +/*000080a0:*/0x04,0x0f,0x72,0x1a,0xf6,0x06,0x87,0x04,0x60,0x75,0x13,0xb4,0x0a,0xf7,0xc6,0x01, +/*000080b0:*/0x00,0x75,0x02,0xb4,0x05,0xb0,0x07,0xef,0xb8,0x05,0x18,0xb9,0x05,0x01,0xef,0x51, +/*000080c0:*/0x8b,0xcb,0x26,0x8a,0x04,0xf6,0xd0,0x88,0x46,0x00,0x45,0x03,0x36,0x4a,0x04,0xe2, +/*000080d0:*/0xf1,0x58,0xef,0xb8,0x00,0x01,0x32,0xd2,0xe9,0x37,0xff,0x2e,0x8e,0x06,0x52,0x56, +/*000080e0:*/0xa1,0x50,0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0x32,0xe4,0xf7,0x26,0x4a,0x04, +/*000080f0:*/0xf7,0x26,0x85,0x04,0x5a,0x03,0xc2,0x8b,0xf0,0x8b,0x1e,0x85,0x04,0x2b,0xe3,0x8b, +/*00008100:*/0xec,0x53,0x8b,0x3e,0x4a,0x04,0x4f,0xc1,0xe7,0x03,0xc1,0xe6,0x03,0xb9,0x08,0x00, +/*00008110:*/0x32,0xe4,0x26,0x8a,0x04,0xd0,0xe4,0x0a,0xc0,0x74,0x03,0x80,0xcc,0x01,0x46,0xe2, +/*00008120:*/0xf1,0x88,0x66,0x00,0x45,0x03,0xf7,0x4b,0x75,0xe3,0x5b,0xb8,0x00,0x01,0x32,0xd2, +/*00008130:*/0xe9,0xdf,0xfe,0x33,0xed,0xeb,0x03,0xbd,0x01,0x00,0x2e,0x8e,0x1e,0x50,0x56,0x2e, +/*00008140:*/0x8e,0x06,0x56,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x03,0x7e,0x0f,0x2e,0x8e,0x06, +/*00008150:*/0x54,0x56,0x80,0xfc,0x07,0x74,0x05,0x7c,0x41,0xe9,0xac,0x01,0x8a,0xe3,0x8b,0xf0, +/*00008160:*/0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04,0x8b,0xd0,0xa0,0x4a,0x04,0xf6, +/*00008170:*/0xe4,0x32,0xf6,0x03,0xc2,0x8b,0xf8,0xd1,0xe7,0x0a,0xdb,0x74,0x0b,0xd0,0xeb,0xa1, +/*00008180:*/0x4c,0x04,0x03,0xf8,0xfe,0xcb,0x75,0xfa,0x8b,0xc6,0x0b,0xed,0x75,0x05,0xf3,0xab, +/*00008190:*/0xe9,0x2f,0x9b,0xaa,0x47,0xe2,0xfc,0xe9,0x28,0x9b,0x50,0x2e,0x8e,0x06,0x56,0x56, +/*000081a0:*/0xa1,0x50,0x04,0xe8,0x2d,0xf9,0x8b,0xf8,0xa0,0x50,0x04,0x8a,0x26,0x4a,0x04,0x8b, +/*000081b0:*/0xe8,0x58,0xa8,0x80,0x74,0x08,0x24,0x7f,0xc5,0x36,0x7c,0x00,0xeb,0x04,0xc5,0x36, +/*000081c0:*/0x0c,0x01,0x8a,0xfc,0x32,0xe4,0xc1,0xe0,0x03,0x03,0xf0,0x80,0xff,0x06,0x74,0x6d, +/*000081d0:*/0xd1,0xe7,0x8a,0xf3,0xb0,0x55,0x80,0xe3,0x03,0xf6,0xe3,0x8a,0xd8,0x8a,0xf8,0x8b, +/*000081e0:*/0xc5,0x50,0xb2,0x04,0xf6,0xc6,0x80,0x75,0x29,0xac,0xe8,0x94,0xf8,0x23,0xc3,0xab, +/*000081f0:*/0xac,0xe8,0x8d,0xf8,0x23,0xc3,0x26,0x89,0x85,0xfe,0x1f,0x83,0xc7,0x4e,0xfe,0xca, +/*00008200:*/0x75,0xe7,0x83,0xee,0x08,0x81,0xef,0x3e,0x01,0x58,0xe8,0x7a,0x00,0xe2,0xd2,0xe9, +/*00008210:*/0xb0,0x9a,0xac,0xe8,0x6b,0xf8,0x23,0xc3,0x26,0x31,0x05,0xac,0xe8,0x62,0xf8,0x23, +/*00008220:*/0xc3,0x26,0x31,0x85,0x00,0x20,0x83,0xc7,0x50,0xfe,0xca,0x75,0xe5,0x83,0xee,0x08, +/*00008230:*/0x81,0xef,0x3e,0x01,0x58,0xe8,0x4f,0x00,0xe2,0xa7,0xe9,0x85,0x9a,0x8b,0xc5,0x50, +/*00008240:*/0xb2,0x04,0xf6,0xc3,0x80,0x74,0x21,0xac,0x26,0x30,0x05,0xac,0x26,0x30,0x85,0x00, +/*00008250:*/0x20,0x83,0xc7,0x50,0xfe,0xca,0x7f,0xef,0x83,0xee,0x08,0x81,0xef,0x3f,0x01,0x58, +/*00008260:*/0xe8,0x24,0x00,0xe2,0xda,0xe9,0x5a,0x9a,0xac,0xaa,0xac,0x26,0x88,0x85,0xff,0x1f, +/*00008270:*/0x83,0xc7,0x4f,0xfe,0xca,0x7f,0xf1,0x83,0xee,0x08,0x81,0xef,0x3f,0x01,0x58,0xe8, +/*00008280:*/0x05,0x00,0xe2,0xbb,0xe9,0x3b,0x9a,0xfe,0xc0,0x38,0xe0,0x72,0x06,0x32,0xc0,0x81, +/*00008290:*/0xc7,0xf0,0x00,0xc3,0x8a,0x16,0x85,0x04,0xf6,0xe2,0x8b,0xf0,0x32,0xf6,0x8b,0xea, +/*000082a0:*/0xa1,0x50,0x04,0x86,0xd0,0x8b,0xfa,0xf6,0xe4,0xf7,0x26,0x4a,0x04,0x03,0xf8,0xc1, +/*000082b0:*/0xe7,0x03,0x8b,0x16,0x4a,0x04,0x8a,0xe2,0x4a,0xc1,0xe2,0x03,0xa0,0x50,0x04,0x50, +/*000082c0:*/0xc5,0x06,0x0c,0x01,0x03,0xf0,0x2e,0x8e,0x06,0x52,0x56,0x58,0x57,0x51,0x50,0x8b, +/*000082d0:*/0xcd,0xb5,0x08,0xac,0x8a,0xe0,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa,0xfe, +/*000082e0:*/0xcd,0x75,0xf3,0x03,0xfa,0xe2,0xea,0x58,0x59,0x5f,0x83,0xc7,0x08,0xfe,0xc0,0x38, +/*000082f0:*/0xe0,0x72,0x0e,0x51,0x32,0xc0,0x8b,0xcd,0x49,0x03,0xfa,0x83,0xc7,0x08,0xe2,0xf9, +/*00008300:*/0x59,0x2b,0xf5,0xe2,0xc7,0xe9,0xba,0x99,0x80,0xfc,0x13,0x7c,0x27,0x74,0x85,0x80, +/*00008310:*/0xfc,0x6a,0x74,0x20,0x80,0xfc,0x7a,0x74,0x1b,0x80,0xfc,0x40,0x0f,0x82,0xa2,0x99, +/*00008320:*/0x80,0xfc,0x5f,0x76,0x1a,0x80,0xfc,0x60,0x0f,0x82,0x96,0x99,0x80,0xfc,0x6f,0x76, +/*00008330:*/0x09,0xe9,0x8e,0x99,0xe8,0x0d,0x00,0xe9,0x88,0x99,0xe8,0xcc,0x00,0xeb,0xf8,0xe8, +/*00008340:*/0x5f,0x01,0xeb,0xf3,0x80,0xfc,0x11,0x75,0x06,0x80,0xe3,0x80,0x80,0xcb,0x0f,0x50, +/*00008350:*/0x53,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x97,0x50,0x04,0x5b,0x2e,0x8e,0x06,0x52, +/*00008360:*/0x56,0xe8,0x81,0xf7,0x8b,0xf8,0x8b,0x2e,0x85,0x04,0x58,0x32,0xf6,0x52,0x8b,0x36, +/*00008370:*/0x4a,0x04,0x56,0x8a,0x26,0x85,0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc,0x0e,0x75,0x09, +/*00008380:*/0x83,0x7c,0xfe,0x10,0x75,0x03,0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0,0xb6,0x03,0xf6, +/*00008390:*/0xc3,0x80,0x75,0x6d,0xb2,0xc4,0xb8,0x02,0x0f,0xef,0x5a,0x58,0x50,0x52,0x4a,0x8a, +/*000083a0:*/0xe0,0x57,0x51,0x51,0x57,0x8b,0xcd,0x32,0xc0,0xaa,0x03,0xfa,0xe2,0xfb,0x5f,0x47, +/*000083b0:*/0xfe,0xc4,0x38,0xd4,0x76,0x0a,0x32,0xe4,0x8b,0xcd,0x49,0x03,0xfa,0x47,0xe2,0xfb, +/*000083c0:*/0x59,0xe2,0xe0,0x59,0x5f,0xba,0xc4,0x03,0xb0,0x02,0x8a,0xe3,0xef,0x5b,0x4b,0x5a, +/*000083d0:*/0x51,0x57,0x8b,0xcd,0xac,0x26,0x8a,0x25,0xaa,0x03,0xfb,0xe2,0xf7,0x5f,0x47,0x2b, +/*000083e0:*/0xf5,0x42,0x3b,0xd3,0x76,0x0a,0x33,0xd2,0x8b,0xcd,0x49,0x03,0xfb,0x47,0xe2,0xfb, +/*000083f0:*/0x59,0xe2,0xdd,0xba,0xce,0x03,0xb8,0x03,0x00,0xef,0xb2,0xc4,0xb8,0x02,0x0f,0xef, +/*00008400:*/0xc3,0xb2,0xce,0xb8,0x03,0x18,0xef,0xeb,0xbc,0x50,0x2e,0x8e,0x06,0x52,0x56,0xa1, +/*00008410:*/0x50,0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0x32,0xe4,0xf7,0x26,0x4a,0x04,0xf7, +/*00008420:*/0x26,0x85,0x04,0x5f,0x03,0xf8,0x83,0xd2,0x00,0x8b,0xc7,0x8a,0xf4,0xc1,0xe7,0x03, +/*00008430:*/0xc1,0xc2,0x03,0x8b,0x2e,0x85,0x04,0x8a,0xf2,0x8a,0x16,0x4a,0x04,0x58,0x8a,0x26, +/*00008440:*/0x85,0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc,0x0e,0x75,0x09,0x83,0x7c,0xfe,0x10,0x75, +/*00008450:*/0x03,0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0,0xb0,0xff,0x52,0x57,0x51,0x8b,0xcd,0x52, +/*00008460:*/0x51,0x57,0x50,0x8a,0xee,0xd0,0xe5,0x38,0xc5,0x74,0x07,0x58,0x8a,0xc5,0x50,0xe8, +/*00008470:*/0x61,0x9e,0xb9,0x08,0x00,0x8a,0x24,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa, +/*00008480:*/0xe2,0xf5,0x58,0x5f,0x59,0x46,0x32,0xf6,0xc1,0xe2,0x03,0x03,0xfa,0x5a,0x80,0xd6, +/*00008490:*/0x00,0xe2,0xcc,0x59,0x5f,0x5a,0x83,0xc7,0x08,0x80,0xd6,0x00,0x2b,0xf5,0xe2,0xba, +/*000084a0:*/0xc3,0x50,0x2e,0x8e,0x06,0x52,0x56,0xa1,0x50,0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a, +/*000084b0:*/0xc4,0x32,0xe4,0xf7,0x26,0x4a,0x04,0xf7,0x26,0x85,0x04,0x5f,0x03,0xf8,0x83,0xd2, +/*000084c0:*/0x00,0x8b,0xc7,0x8a,0xf4,0xc1,0xe7,0x04,0xc1,0xc2,0x04,0x8b,0x2e,0x85,0x04,0x8a, +/*000084d0:*/0xf2,0x8a,0x16,0x4a,0x04,0x58,0x8a,0x26,0x85,0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc, +/*000084e0:*/0x0e,0x75,0x09,0x83,0x7c,0xfe,0x10,0x75,0x03,0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0, +/*000084f0:*/0xb0,0xff,0x52,0x57,0x51,0x8b,0xcd,0x52,0x51,0x57,0x50,0x8a,0xee,0xd0,0xe5,0x38, +/*00008500:*/0xc5,0x74,0x07,0x58,0x8a,0xc5,0x50,0xe8,0xc9,0x9d,0xb9,0x08,0x00,0x8a,0x24,0x32, +/*00008510:*/0xc0,0xaa,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa,0xe2,0xf2,0x58,0x5f,0x59, +/*00008520:*/0x46,0x32,0xf6,0xc1,0xe2,0x04,0x03,0xfa,0x5a,0x80,0xd6,0x00,0xe2,0xc9,0x59,0x5f, +/*00008530:*/0x5a,0x83,0xc7,0x10,0x80,0xd6,0x00,0x2b,0xf5,0xe2,0xb7,0xc3,0xe8,0xad,0xf2,0x80, +/*00008540:*/0x3e,0x63,0x04,0xb4,0x74,0x0b,0xba,0xcc,0x03,0xec,0xa8,0x01,0x75,0x06,0xe9,0x6a, +/*00008550:*/0x97,0xe9,0x6e,0x97,0xe8,0x18,0xf6,0x0a,0xff,0x75,0x1c,0x8a,0xe3,0x80,0xe4,0x1f, +/*00008560:*/0x80,0x26,0x66,0x04,0xe0,0x08,0x26,0x66,0x04,0xe8,0x33,0x00,0x8a,0x1e,0x66,0x04, +/*00008570:*/0x80,0xe3,0x20,0xb1,0x05,0xd2,0xeb,0x80,0x3e,0x49,0x04,0x03,0x7e,0x1b,0xa0,0x66, +/*00008580:*/0x04,0x24,0xdf,0x80,0xe3,0x01,0x74,0x02,0x0c,0x20,0xa2,0x66,0x04,0x24,0x10,0x0c, +/*00008590:*/0x02,0x0a,0xd8,0xe8,0x57,0x00,0xe9,0x29,0x97,0xe8,0xc1,0xf5,0xe9,0x23,0x97,0x53, +/*000085a0:*/0x50,0x80,0xe3,0x0f,0x8a,0xfb,0xd0,0xe3,0x81,0xe3,0x10,0x07,0x0a,0xdf,0x80,0x3e, +/*000085b0:*/0x49,0x04,0x04,0x7c,0x0e,0xb4,0x00,0x8a,0xc3,0xe8,0xbb,0xc1,0x0b,0xed,0x74,0x03, +/*000085c0:*/0x26,0x88,0x1d,0x8a,0xc3,0xe8,0x0b,0x00,0x0b,0xed,0x74,0x04,0x26,0x88,0x5d,0x10, +/*000085d0:*/0x58,0x5b,0xc3,0x8a,0xe0,0x1e,0xe8,0x13,0xf2,0x80,0x3e,0x49,0x04,0x13,0x1f,0x7f, +/*000085e0:*/0x08,0x8a,0xc4,0xb4,0x11,0xe8,0x8f,0xc1,0xc3,0xe8,0x71,0xf5,0xc3,0x9c,0xfa,0xe8, +/*000085f0:*/0xe4,0x05,0xb2,0xc0,0xb9,0x03,0x00,0xb4,0x01,0x8a,0xc4,0xee,0x8a,0xc3,0xee,0x0b, +/*00008600:*/0xed,0x74,0x04,0x47,0x26,0x88,0x1d,0xfe,0xc4,0x80,0xc3,0x02,0xe2,0xeb,0xb0,0x20, +/*00008610:*/0xee,0x9d,0xc3,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x07,0x77, +/*00008620:*/0x0d,0x74,0x08,0x80,0xfc,0x03,0x7e,0x03,0xe8,0x01,0xf3,0xe9,0x94,0x96,0x80,0xfc, +/*00008630:*/0x13,0x7c,0x0c,0x74,0x57,0x80,0xfc,0x6a,0x74,0x05,0x80,0xfc,0x7a,0x74,0x00,0x8a, +/*00008640:*/0xd8,0xe8,0xf1,0xf4,0xba,0xce,0x03,0xb0,0x08,0xef,0x2e,0x8e,0x1e,0x52,0x56,0xf6, +/*00008650:*/0xc3,0x80,0x75,0x1e,0xb2,0xc4,0xb8,0x02,0xff,0xef,0x8a,0x25,0xc6,0x05,0x00,0x8a, +/*00008660:*/0xe3,0xef,0x8a,0x25,0xb4,0xff,0x88,0x25,0xef,0xb2,0xce,0xb8,0x08,0xff,0xef,0xe9, +/*00008670:*/0x50,0x96,0xb8,0x03,0x18,0xef,0xb2,0xc4,0xb0,0x02,0x8a,0xe3,0xef,0x8a,0x25,0xb4, +/*00008680:*/0xff,0x88,0x25,0xef,0xb2,0xce,0xb8,0x03,0x00,0xef,0xeb,0xdf,0x50,0x2e,0x8e,0x06, +/*00008690:*/0x52,0x56,0xa1,0x4a,0x04,0xc1,0xe0,0x03,0xf7,0xe2,0x03,0xc1,0x8b,0xf8,0x58,0x26, +/*000086a0:*/0x88,0x05,0xe9,0x1d,0x96,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc, +/*000086b0:*/0x07,0x77,0x12,0x74,0x0d,0x80,0xfc,0x03,0x7e,0x08,0xe8,0x91,0xf2,0x8b,0xec,0x89, +/*000086c0:*/0x46,0x1c,0xe9,0xfd,0x95,0x80,0xfc,0x13,0x7c,0x0c,0x74,0x34,0x80,0xfc,0x6a,0x74, +/*000086d0:*/0x05,0x80,0xfc,0x7a,0x74,0x00,0xe8,0x5c,0xf4,0x8a,0xcc,0x2e,0x8e,0x1e,0x52,0x56, +/*000086e0:*/0xba,0xce,0x03,0x32,0xff,0xb8,0x04,0x03,0xef,0xd0,0xe7,0x8a,0x1d,0x22,0xd9,0x74, +/*000086f0:*/0x03,0x80,0xcf,0x01,0xfe,0xcc,0x7d,0xf0,0x8b,0xec,0x88,0x7e,0x1c,0xe9,0xc2,0x95, +/*00008700:*/0xa1,0x4a,0x04,0xc1,0xe0,0x03,0xf7,0xe2,0x03,0xc1,0x8b,0xf8,0x2e,0x8e,0x1e,0x52, +/*00008710:*/0x56,0x8a,0x05,0x8b,0xec,0x88,0x46,0x1c,0xe9,0xa7,0x95,0x2e,0x8e,0x1e,0x50,0x56, +/*00008720:*/0x8a,0x3e,0x62,0x04,0x8a,0xcf,0xd0,0xe1,0x32,0xed,0xbe,0x50,0x04,0x03,0xf1,0x8b, +/*00008730:*/0x14,0x8a,0x0e,0x49,0x04,0x3c,0x0d,0x76,0x4c,0x2e,0x8e,0x06,0x56,0x56,0x80,0xf9, +/*00008740:*/0x03,0x7f,0x35,0x8a,0x1e,0x4a,0x04,0x8a,0xf8,0x8a,0xc6,0xf6,0xe3,0x8a,0xca,0x03, +/*00008750:*/0xc8,0xd1,0xe1,0x03,0x0e,0x4e,0x04,0x8b,0xf9,0x8a,0xc7,0xaa,0xd1,0xe9,0x41,0xfe, +/*00008760:*/0xc2,0x38,0xda,0x73,0x5a,0x89,0x14,0x8b,0x16,0x63,0x04,0xb0,0x0e,0x8a,0xe5,0xef, +/*00008770:*/0x8a,0xe1,0xfe,0xc0,0xef,0xe9,0x4a,0x95,0x2e,0x8e,0x06,0x54,0x56,0x80,0xf9,0x07, +/*00008780:*/0x74,0xc1,0xe9,0x84,0x00,0x75,0x04,0x32,0xd2,0xeb,0x0f,0x3c,0x0a,0x75,0x1a,0x3a, +/*00008790:*/0x36,0x84,0x04,0x75,0x03,0xe9,0x96,0x00,0xfe,0xc6,0x89,0x14,0x80,0xf9,0x07,0x7f, +/*000087a0:*/0x05,0x8b,0xc2,0xe8,0x72,0xf3,0xe9,0x19,0x95,0x3c,0x07,0x75,0x06,0xe8,0x66,0xf0, +/*000087b0:*/0xe9,0x0f,0x95,0x3c,0x08,0x75,0x82,0x0a,0xd2,0x74,0xdf,0xfe,0xca,0xeb,0xdb,0x32, +/*000087c0:*/0xff,0x32,0xd2,0x2b,0xcb,0x3a,0x36,0x84,0x04,0x74,0x06,0xfe,0xc6,0x03,0xcb,0xeb, +/*000087d0:*/0x94,0x89,0x14,0x8b,0x16,0x63,0x04,0xb0,0x0e,0x8a,0xe5,0xef,0x8a,0xe1,0xfe,0xc0, +/*000087e0:*/0xef,0x2b,0xfb,0x2b,0xfb,0x26,0x8a,0x65,0x02,0x50,0x8b,0x3e,0x4e,0x04,0x8b,0xf3, +/*000087f0:*/0xd1,0xe6,0x03,0xf7,0xa0,0x84,0x04,0xf6,0xe3,0x8b,0xc8,0x06,0x1f,0xf3,0xa5,0x8b, +/*00008800:*/0xcb,0x58,0xb0,0x20,0xf3,0xab,0xe9,0xb9,0x94,0xb9,0x01,0x00,0xb4,0x0a,0xe8,0x63, +/*00008810:*/0x94,0xfe,0xc2,0x3a,0x16,0x4a,0x04,0x74,0x05,0x89,0x14,0xe9,0xa4,0x94,0x32,0xff, +/*00008820:*/0x32,0xd2,0x89,0x14,0x3a,0x36,0x84,0x04,0x74,0x2e,0xfe,0xc6,0xeb,0xeb,0x89,0x14, +/*00008830:*/0x2e,0x8e,0x06,0x56,0x56,0x80,0xf9,0x03,0x7e,0x0e,0x2e,0x8e,0x06,0x54,0x56,0x80, +/*00008840:*/0xf9,0x07,0x74,0x04,0x32,0xff,0xeb,0x10,0x8b,0xc2,0xe8,0xcb,0xf2,0x8b,0xf9,0xd1, +/*00008850:*/0xe7,0x4f,0x8b,0x1e,0x4a,0x04,0xeb,0x8d,0x33,0xc9,0x8a,0x36,0x84,0x04,0x8a,0x16, +/*00008860:*/0x4a,0x04,0xfe,0xca,0xb0,0x01,0xe9,0xf3,0xf5,0xe8,0x80,0xef,0xf6,0x06,0x87,0x04, +/*00008870:*/0x08,0x75,0x0c,0xe8,0x99,0xf3,0x8b,0xec,0xc6,0x46,0x1d,0x00,0xe9,0x43,0x94,0xe9, +/*00008880:*/0x39,0x94,0xe8,0x67,0xef,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x89,0x97,0x50,0x04,0xd0, +/*00008890:*/0xeb,0x38,0x1e,0x62,0x04,0x75,0x05,0x8b,0xc2,0xe8,0x7c,0xf2,0xe9,0x23,0x94,0xe8, +/*000088a0:*/0x4a,0xef,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x97,0x50,0x04,0x8b,0x0e,0x60,0x04, +/*000088b0:*/0x8b,0xec,0x89,0x4e,0x18,0x89,0x56,0x14,0xe9,0x07,0x94,0xe8,0x2e,0xef,0xa0,0x87, +/*000088c0:*/0x04,0x24,0x80,0x0a,0x06,0x49,0x04,0x8a,0x26,0x4a,0x04,0xf6,0x06,0x87,0x04,0x08, +/*000088d0:*/0x75,0x28,0x80,0x3e,0x49,0x04,0x07,0x7f,0x21,0x51,0x8a,0xcc,0x8a,0x2e,0x84,0x04, +/*000088e0:*/0xbe,0x0f,0x89,0x81,0xfe,0x1e,0x89,0x74,0x10,0x2e,0x3b,0x0c,0x74,0x05,0x83,0xc6, +/*000088f0:*/0x03,0xeb,0xf0,0x24,0x80,0x2e,0x0a,0x44,0x02,0x59,0x8a,0x3e,0x62,0x04,0x8b,0xec, +/*00008900:*/0x89,0x46,0x1c,0x89,0x5e,0x10,0x89,0x4e,0x18,0x89,0x56,0x14,0xe9,0xb3,0x93,0x84, +/*00008910:*/0x18,0x23,0x84,0x2b,0x33,0x84,0x2a,0x32,0x64,0x18,0x21,0x64,0x1d,0x22,0xe8,0xcb, +/*00008920:*/0xee,0x3c,0x04,0x7f,0x1d,0x50,0x52,0xba,0xcc,0x03,0xec,0xa8,0x01,0x5a,0x58,0x74, +/*00008930:*/0x0a,0x80,0x3e,0x63,0x04,0xd4,0x74,0x0a,0xe9,0x87,0x93,0x80,0x3e,0x63,0x04,0xb4, +/*00008940:*/0x75,0xf6,0x3c,0x1c,0x73,0xf2,0x32,0xe4,0x8b,0xe8,0xd1,0xe5,0x2e,0xff,0xa6,0x51, +/*00008950:*/0x89,0x89,0x89,0xab,0x89,0xc0,0x89,0xf5,0x89,0x38,0x89,0x38,0x89,0x38,0x89,0x1a, +/*00008960:*/0x8a,0x32,0x8a,0x36,0x8a,0x38,0x89,0x38,0x89,0x38,0x89,0x38,0x89,0x38,0x89,0x38, +/*00008970:*/0x89,0x64,0x8a,0x38,0x89,0x6a,0x8a,0x87,0x8a,0x38,0x89,0xc8,0x8a,0x38,0x89,0xd8, +/*00008980:*/0x8a,0xf5,0x8a,0xfe,0x8a,0x0c,0x8b,0x30,0x8b,0x80,0x3e,0x49,0x04,0x13,0x74,0x15, +/*00008990:*/0xe8,0xdc,0xf1,0x8b,0xc3,0x86,0xe0,0xe8,0xdd,0xbd,0x0b,0xed,0x74,0x07,0x8a,0xc7, +/*000089a0:*/0x32,0xff,0x26,0x88,0x01,0xe8,0xb0,0xf1,0xe9,0x17,0x93,0xe8,0xc7,0x96,0xe8,0xbe, +/*000089b0:*/0xf1,0x8a,0xc7,0xe8,0x1d,0xfc,0x0b,0xed,0x74,0xeb,0x26,0x88,0x7d,0x11,0xeb,0xe5, +/*000089c0:*/0x80,0x3e,0x49,0x04,0x13,0x74,0xde,0x06,0xe8,0xa4,0xf1,0x1f,0x0b,0xed,0x74,0x07, +/*000089d0:*/0x8b,0xf2,0xb9,0x11,0x00,0xf3,0xa4,0x8b,0xf2,0xe8,0x09,0x02,0x32,0xe4,0xb9,0x10, +/*000089e0:*/0x00,0xb2,0xc0,0x9c,0xfa,0x8a,0xc4,0xee,0xac,0xee,0x9d,0xfe,0xc4,0xe2,0xf4,0xac, +/*000089f0:*/0xe8,0xe0,0xfb,0xeb,0xb0,0x80,0xfb,0x01,0x77,0xab,0xe8,0x5b,0xf1,0xb2,0xc0,0xb0, +/*00008a00:*/0x30,0xe8,0xde,0xed,0x24,0xf7,0x80,0x26,0x65,0x04,0xdf,0x80,0xfb,0x00,0x74,0x07, +/*00008a10:*/0x0c,0x08,0x80,0x0e,0x65,0x04,0x20,0xee,0xeb,0x8b,0xe8,0xc8,0x01,0x8a,0xc3,0xb2, +/*00008a20:*/0xc0,0xe8,0xbe,0xed,0x8b,0xc8,0xee,0xb0,0x20,0xee,0x8b,0xec,0x88,0x4e,0x11,0xe9, +/*00008a30:*/0x73,0xff,0xb3,0x11,0xeb,0xe4,0x8b,0xfa,0xe8,0x1d,0xf1,0xb9,0x10,0x00,0x32,0xe4, +/*00008a40:*/0xb2,0xc0,0x8a,0xc4,0x9c,0xfa,0xee,0x42,0xec,0x26,0x88,0x05,0xfe,0xc4,0x4a,0xee, +/*00008a50:*/0x9d,0x47,0xe2,0xee,0x9c,0xfa,0xb0,0x11,0xee,0x42,0xec,0x9d,0x26,0x88,0x05,0xe8, +/*00008a60:*/0xfb,0xf0,0xeb,0x5e,0xe8,0xde,0x00,0xe9,0x58,0x92,0x8b,0xfa,0x51,0x8b,0xc3,0x26, +/*00008a70:*/0x8a,0x35,0x26,0x8a,0x6d,0x01,0x26,0x8a,0x4d,0x02,0xe8,0xd8,0x00,0x83,0xc7,0x03, +/*00008a80:*/0x43,0x59,0xe2,0xe8,0xe9,0x3b,0x92,0x0a,0xdb,0x75,0x1a,0xe8,0xca,0xf0,0xb2,0xc0, +/*00008a90:*/0xb0,0x30,0xe8,0x4d,0xed,0x24,0x7f,0xf6,0xc7,0x01,0x74,0x02,0x0c,0x80,0xb4,0x30, +/*00008aa0:*/0xe8,0xd4,0xbc,0xeb,0x1d,0xfe,0xcb,0x75,0x1c,0xe8,0xac,0xf0,0xb2,0xc0,0xb0,0x30, +/*00008ab0:*/0xe8,0x2f,0xed,0xee,0xa8,0x80,0x75,0x03,0xc0,0xe7,0x02,0xb4,0x34,0x8a,0xc7,0xe8, +/*00008ac0:*/0xb5,0xbc,0xe8,0x93,0xf0,0xe9,0xfa,0x91,0x8a,0xc3,0xe8,0xe5,0x00,0x8b,0xec,0x89, +/*00008ad0:*/0x4e,0x18,0x88,0x76,0x15,0xe9,0xea,0x91,0x8b,0xfa,0x51,0x8b,0xc3,0xe8,0xd5,0x00, +/*00008ae0:*/0x26,0x88,0x35,0x26,0x88,0x6d,0x01,0x26,0x88,0x4d,0x02,0x83,0xc7,0x03,0x43,0x59, +/*00008af0:*/0xe2,0xe8,0xe9,0xcd,0x91,0xba,0xc6,0x03,0x8a,0xc3,0xee,0xe9,0xc4,0x91,0xba,0xc6, +/*00008b00:*/0x03,0xec,0x32,0xe4,0x8b,0xec,0x89,0x46,0x10,0xe9,0xb6,0x91,0xe8,0x49,0xf0,0xb2, +/*00008b10:*/0xc0,0xb0,0x34,0xe8,0xcc,0xec,0x8a,0xf8,0xee,0xb0,0x30,0xe8,0xc4,0xec,0xb3,0x01, +/*00008b20:*/0xa8,0x80,0x75,0x05,0xb3,0x00,0xc0,0xef,0x02,0x8b,0xec,0x89,0x5e,0x10,0xeb,0x92, +/*00008b30:*/0x51,0x8b,0xc3,0xe8,0x7f,0x00,0xe8,0x2c,0x00,0x8a,0xc3,0xe8,0x54,0x00,0x43,0x59, +/*00008b40:*/0xe2,0xee,0xe9,0x7d,0x91,0xf6,0x06,0x89,0x04,0x02,0x74,0x03,0xe8,0x16,0x00,0x8a, +/*00008b50:*/0xc3,0xe8,0x39,0x00,0xc3,0xf6,0x06,0x89,0x04,0x02,0x74,0x03,0xe8,0x06,0x00,0x8a, +/*00008b60:*/0xc3,0xe8,0x2e,0x00,0xc3,0x50,0xb0,0x1e,0xf6,0xe6,0x50,0xb0,0x3b,0xf6,0xe5,0x50, +/*00008b70:*/0xb0,0x0b,0xf6,0xe1,0x59,0x03,0xc1,0x59,0x03,0xc1,0xb1,0x64,0xf6,0xf1,0x80,0xfc, +/*00008b80:*/0x32,0x7c,0x02,0xfe,0xc0,0x8a,0xf0,0x8a,0xe8,0x8a,0xc8,0x58,0xc3,0x52,0xe8,0x54, +/*00008b90:*/0x00,0x5a,0x53,0x8b,0xda,0xba,0xc8,0x03,0x9c,0xfa,0xe8,0xe1,0x9a,0x42,0x8a,0xc7, +/*00008ba0:*/0xe8,0xdb,0x9a,0x8a,0xc5,0xe8,0xd6,0x9a,0x8a,0xc1,0xe8,0x03,0x00,0x9d,0x5b,0xc3, +/*00008bb0:*/0xee,0xc3,0xe8,0x30,0x00,0x53,0x9c,0xfa,0xba,0xc7,0x03,0xe8,0xf2,0xff,0x42,0x42, +/*00008bc0:*/0xec,0x8a,0xf8,0xeb,0x00,0xeb,0x00,0xec,0x8a,0xe8,0xeb,0x00,0xeb,0x00,0xec,0x8a, +/*00008bd0:*/0xc8,0x8a,0xf7,0x9d,0x5b,0xc3,0x50,0x51,0xe8,0x7d,0xef,0xb9,0xff,0x7f,0xec,0xa8, +/*00008be0:*/0x08,0xe0,0xfb,0xeb,0x05,0x50,0x51,0xe8,0x6e,0xef,0xb9,0xff,0x7f,0xec,0xa8,0x08, +/*00008bf0:*/0xe1,0xfb,0x59,0x58,0xc3,0xe8,0xf4,0xeb,0x8b,0xf8,0x24,0x0f,0x81,0xe7,0xf0,0x00, +/*00008c00:*/0xc1,0xef,0x03,0x83,0xff,0x06,0x7f,0x18,0x2e,0xff,0xa5,0x0d,0x8c,0x15,0x8c,0x2e, +/*00008c10:*/0x8c,0xce,0x8c,0x30,0x8d,0x3c,0x03,0x74,0x0a,0x3c,0x04,0x7f,0x03,0xe8,0xe0,0x01, +/*00008c20:*/0xe9,0x9f,0x90,0xba,0xc4,0x03,0xb0,0x03,0x8a,0xe3,0xef,0xe9,0x94,0x90,0x3c,0x04, +/*00008c30:*/0x77,0xee,0x50,0x53,0x50,0x52,0x8b,0x16,0x63,0x04,0xb0,0x07,0xe8,0xa3,0xeb,0x8a, +/*00008c40:*/0xe0,0xd0,0xec,0x80,0xe4,0x01,0xa8,0x40,0x74,0x03,0x80,0xcc,0x02,0xb0,0x12,0xe8, +/*00008c50:*/0x90,0xeb,0x40,0xa3,0x85,0x04,0xb0,0x09,0xe8,0x87,0xeb,0xa8,0x80,0x74,0x04,0xd1, +/*00008c60:*/0x2e,0x85,0x04,0xa1,0x85,0x04,0x8b,0xd0,0x3d,0xf4,0x01,0x73,0x1b,0xba,0xe0,0x01, +/*00008c70:*/0x3d,0xc2,0x01,0x73,0x13,0xba,0x90,0x01,0x3d,0x7c,0x01,0x73,0x0b,0xba,0x5e,0x01, +/*00008c80:*/0x3d,0x4a,0x01,0x73,0x03,0xba,0xc8,0x00,0x89,0x16,0x85,0x04,0x5a,0x58,0xc6,0x06, +/*00008c90:*/0x84,0x04,0xff,0xe8,0x6a,0x01,0x5b,0x58,0x8a,0xdf,0x32,0xff,0x0a,0xc0,0x74,0x0e, +/*00008ca0:*/0xb3,0x0e,0x3c,0x01,0x74,0x08,0xb3,0x08,0x3c,0x02,0x74,0x02,0xb3,0x10,0x8a,0xcb, +/*00008cb0:*/0x8a,0xe9,0x81,0xe9,0x01,0x02,0x80,0xf9,0x08,0x7e,0x04,0x81,0xe9,0x01,0x01,0x87, +/*00008cc0:*/0x1e,0x85,0x04,0x53,0xe8,0x48,0xef,0x5b,0xe8,0x93,0x02,0xe9,0xf4,0x8f,0x0a,0xc0, +/*00008cd0:*/0x74,0x13,0xfe,0xc8,0x74,0x1e,0xfe,0xc8,0x74,0x3e,0xfe,0xc8,0x74,0x42,0xfe,0xc8, +/*00008ce0:*/0x74,0x46,0xe9,0xdd,0x8f,0x89,0x2e,0x7c,0x00,0x8c,0x06,0x7e,0x00,0xe9,0xd2,0x8f, +/*00008cf0:*/0x8c,0xc8,0x8e,0xc0,0xfe,0xca,0x0a,0xdb,0x74,0x07,0x32,0xff,0x2e,0x8a,0x97,0x14, +/*00008d00:*/0x8d,0x89,0x0e,0x85,0x04,0x88,0x16,0x84,0x04,0x89,0x2e,0x0c,0x01,0x8c,0x06,0x0e, +/*00008d10:*/0x01,0xe9,0xae,0x8f,0x00,0x0d,0x18,0x2a,0xe8,0x40,0x03,0xb9,0x0e,0x00,0xeb,0xd4, +/*00008d20:*/0xbd,0x82,0x26,0xb9,0x08,0x00,0xeb,0xc8,0xbd,0x95,0x2e,0xb9,0x10,0x00,0xeb,0xc0, +/*00008d30:*/0x0a,0xc0,0x75,0xb9,0x8b,0x0e,0x85,0x04,0x8a,0x16,0x84,0x04,0x80,0xff,0x07,0x77, +/*00008d40:*/0x35,0x80,0xff,0x01,0x77,0x10,0x0a,0xff,0x75,0x06,0xc4,0x2e,0x7c,0x00,0xeb,0x26, +/*00008d50:*/0xc4,0x2e,0x0c,0x01,0xeb,0x20,0x80,0xff,0x02,0x75,0x0b,0x8c,0xcd,0x8e,0xc5,0x2e, +/*00008d60:*/0x8b,0x2e,0x96,0x3e,0xeb,0x10,0x0e,0x07,0x8a,0xdf,0x32,0xff,0x80,0xeb,0x02,0xd1, +/*00008d70:*/0xe3,0x2e,0x8b,0xaf,0x89,0x8d,0x8b,0xc5,0x8b,0xec,0x89,0x4e,0x18,0x89,0x56,0x14, +/*00008d80:*/0x89,0x46,0x08,0x8c,0x46,0x20,0xe9,0x39,0x8f,0x95,0x2e,0x82,0x26,0x82,0x2a,0x82, +/*00008d90:*/0x2e,0x95,0x2e,0x95,0x2e,0x53,0x06,0x8a,0x26,0x49,0x04,0xe8,0x03,0x00,0x07,0x5b, +/*00008da0:*/0xc3,0xe8,0xd9,0x92,0x26,0x8a,0x47,0x02,0x26,0x8a,0x67,0x33,0xf6,0xc4,0x01,0x74, +/*00008db0:*/0x21,0xbd,0x95,0x2e,0x3c,0x10,0x7d,0x0e,0xe8,0xa0,0x02,0x8c,0x06,0x0e,0x01,0x3c, +/*00008dc0:*/0x0e,0x7d,0x07,0xbd,0x82,0x26,0x8c,0x0e,0x0e,0x01,0x89,0x2e,0x0c,0x01,0xe8,0x0e, +/*00008dd0:*/0x01,0xc3,0xb4,0x84,0x3c,0x10,0x7d,0x13,0xb4,0x81,0x3c,0x0e,0x74,0x0d,0x7f,0x15, +/*00008de0:*/0xb4,0x02,0x3c,0x08,0x74,0x05,0x80,0xcc,0x80,0xeb,0x0a,0x26,0xf6,0x47,0x05,0x01, +/*00008df0:*/0x74,0x03,0x80,0xe4,0x7f,0x86,0xc4,0x32,0xdb,0xe8,0x04,0x00,0xe8,0xf9,0x01,0xc3, +/*00008e00:*/0x8b,0xf8,0x8b,0xf2,0xba,0xce,0x03,0xec,0xb8,0x05,0x00,0xef,0xb8,0x06,0x04,0xef, +/*00008e10:*/0xb2,0xc4,0xec,0xb8,0x02,0x04,0xef,0xb8,0x04,0x07,0xef,0x8b,0xd6,0x8b,0xc7,0x50, +/*00008e20:*/0x24,0x7f,0x0a,0xc0,0x74,0x22,0x0e,0x07,0x33,0xd2,0xb9,0x00,0x01,0x3c,0x04,0x75, +/*00008e30:*/0x07,0xb7,0x10,0xbd,0x95,0x2e,0xeb,0x10,0xfe,0xc8,0x75,0x07,0xb7,0x0e,0xe8,0x1a, +/*00008e40:*/0x02,0xeb,0x05,0xb7,0x08,0xbd,0x82,0x26,0xe8,0x2e,0x00,0x58,0xa8,0x80,0x74,0x03, +/*00008e50:*/0xe8,0x74,0x01,0xba,0xc4,0x03,0xb8,0x02,0x03,0xef,0xb8,0x04,0x02,0xef,0xb2,0xcc, +/*00008e60:*/0xec,0xa8,0x01,0xb8,0x06,0x0e,0x75,0x02,0xb4,0x0a,0xb2,0xce,0x50,0xec,0x58,0xef, +/*00008e70:*/0xb8,0x04,0x00,0xef,0xb8,0x05,0x10,0xef,0xc3,0xfc,0x0b,0xc9,0x75,0x01,0xc3,0x80, +/*00008e80:*/0xff,0x0e,0x75,0x0a,0x26,0x83,0x7e,0xfe,0x10,0x75,0x03,0x80,0xcd,0x80,0x1e,0x06, +/*00008e90:*/0x1f,0x2e,0x8e,0x06,0x52,0x56,0x8b,0xfa,0xc1,0xe7,0x05,0xb0,0x40,0x53,0x80,0xe3, +/*00008ea0:*/0x03,0xf6,0xe3,0x5b,0xf6,0xc3,0x04,0x74,0x02,0x04,0x20,0x86,0xe0,0x8b,0xd0,0x03, +/*00008eb0:*/0xfa,0x8b,0xf5,0xe3,0x28,0x32,0xc0,0x86,0xfb,0x32,0xff,0x51,0xf6,0xc5,0x80,0x74, +/*00008ec0:*/0x01,0x46,0x8b,0xcb,0xf3,0xa4,0x83,0xfb,0x20,0x74,0x07,0xb9,0x20,0x00,0x2b,0xcb, +/*00008ed0:*/0xf3,0xaa,0x59,0xf6,0xc5,0x80,0x74,0x01,0x46,0xfe,0xc9,0x75,0xde,0x1f,0xc3,0x8a, +/*00008ee0:*/0x26,0x49,0x04,0x50,0x06,0x57,0xc4,0x3e,0xa8,0x04,0x26,0xc4,0x7d,0x0c,0x8c,0xc5, +/*00008ef0:*/0x0b,0xef,0x74,0x30,0x8b,0xef,0x83,0xc7,0x07,0x26,0x8a,0x05,0x3c,0xff,0x74,0x24, +/*00008f00:*/0x38,0xe0,0x74,0x03,0x47,0xeb,0xf2,0x8b,0xfd,0x26,0x8a,0x05,0xfe,0xc8,0xa2,0x84, +/*00008f10:*/0x04,0x26,0x8b,0x45,0x01,0xa3,0x85,0x04,0x26,0xc4,0x7d,0x03,0x89,0x3e,0x0c,0x01, +/*00008f20:*/0x8c,0x06,0x0e,0x01,0x5f,0x07,0x58,0xc3,0x26,0xf6,0x47,0x33,0x01,0x74,0x01,0xc3, +/*00008f30:*/0xc4,0x1e,0xa8,0x04,0x26,0xc4,0x5f,0x08,0x8c,0xc0,0x0b,0xc3,0x74,0x1f,0xbf,0x0b, +/*00008f40:*/0x00,0x26,0x8a,0x01,0x3c,0xff,0x74,0x15,0x47,0x38,0x06,0x49,0x04,0x75,0xf2,0x26, +/*00008f50:*/0x8a,0x07,0x32,0xe4,0x87,0x06,0x85,0x04,0x8b,0xd8,0xe8,0x01,0x00,0xc3,0x8b,0x16, +/*00008f60:*/0x63,0x04,0x8a,0x26,0x85,0x04,0xfe,0xcc,0x80,0xe4,0x1f,0x9c,0xfa,0x80,0xfa,0xd4, +/*00008f70:*/0x74,0x0b,0xb0,0x14,0xee,0x42,0xec,0x24,0xe0,0x0a,0xc4,0xee,0x4a,0xb0,0x09,0xee, +/*00008f80:*/0x42,0xec,0x24,0xe0,0x0a,0xc4,0xee,0x9d,0x8a,0xc8,0x8b,0xc3,0x8a,0x16,0x85,0x04, +/*00008f90:*/0xf6,0xf2,0x80,0x3e,0x84,0x04,0xff,0x75,0x07,0xa2,0x84,0x04,0xfe,0x0e,0x84,0x04, +/*00008fa0:*/0xf6,0xe2,0xf6,0xc1,0x80,0x74,0x02,0xd1,0xe0,0x48,0x8a,0xe0,0xb0,0x12,0x8b,0x16, +/*00008fb0:*/0x63,0x04,0xef,0xa0,0x4a,0x04,0x8a,0x26,0x84,0x04,0xfe,0xc4,0xf6,0xe4,0xd1,0xe0, +/*00008fc0:*/0x05,0x00,0x01,0xa3,0x4c,0x04,0xc3,0x1e,0x32,0xff,0x8a,0xdc,0xbe,0x95,0x2e,0x80, +/*00008fd0:*/0xfb,0x10,0x74,0x0a,0xbe,0x82,0x2e,0x80,0xfb,0x0e,0x74,0x02,0x1f,0xc3,0x0e,0x1f, +/*00008fe0:*/0x8b,0x3c,0x0b,0xff,0x74,0x10,0x81,0xe7,0xff,0x00,0x46,0xc1,0xe7,0x05,0x03,0xfa, +/*00008ff0:*/0x8b,0xcb,0xf3,0xa4,0xeb,0xea,0x1f,0xc3,0x8a,0x26,0x49,0x04,0x50,0x06,0x57,0xc4, +/*00009000:*/0x3e,0xa8,0x04,0x26,0xc4,0x7d,0x08,0x8c,0xc5,0x0b,0xef,0x74,0x4a,0x8b,0xef,0x83, +/*00009010:*/0xc7,0x0b,0x26,0x8a,0x05,0x3c,0xff,0x74,0x3e,0x38,0xe0,0x74,0x03,0x47,0xeb,0xf2, +/*00009020:*/0x8b,0xfd,0x26,0x8a,0x3d,0x26,0x8a,0x5d,0x01,0x26,0x8b,0x4d,0x02,0x26,0x8b,0x55, +/*00009030:*/0x04,0x26,0x8a,0x45,0x0a,0x3c,0xff,0x74,0x02,0xfe,0xc8,0x50,0xa0,0x84,0x04,0xfe, +/*00009040:*/0xc0,0xf6,0x26,0x85,0x04,0xa3,0x85,0x04,0x58,0xa2,0x84,0x04,0x26,0xc4,0x7d,0x06, +/*00009050:*/0x8b,0xef,0x32,0xc0,0xe8,0xa9,0xfd,0x5f,0x07,0x58,0xc3,0x50,0x53,0x51,0x52,0x2e, +/*00009060:*/0xa1,0x5a,0x56,0x0b,0xc0,0x74,0x09,0x2e,0x8b,0x2e,0x96,0x3e,0x0e,0x07,0xeb,0x07, +/*00009070:*/0xb8,0x30,0x11,0xb7,0x02,0xcd,0x10,0x5a,0x59,0x5b,0x58,0xc3,0x3c,0x04,0x7c,0x03, +/*00009080:*/0xe9,0x3f,0x8c,0xe3,0xfb,0x53,0xe8,0x63,0xe7,0x86,0xfb,0x32,0xff,0xd1,0xe3,0x8b, +/*00009090:*/0xfb,0x81,0xc7,0x50,0x04,0x8b,0x35,0x5b,0x89,0x15,0x56,0x8b,0xf0,0x51,0x53,0x26, +/*000090a0:*/0x8a,0x46,0x00,0x45,0x3c,0x0d,0x7f,0x1f,0x75,0x04,0x32,0xd2,0xeb,0x40,0x3c,0x0a, +/*000090b0:*/0x74,0x32,0x3c,0x07,0x75,0x05,0xe8,0x5d,0xe7,0xeb,0x64,0x3c,0x08,0x75,0x08,0x0a, +/*000090c0:*/0xd2,0x74,0x5c,0xfe,0xca,0xeb,0x27,0xf7,0xc6,0x02,0x00,0x74,0x05,0x26,0x8a,0x5e, +/*000090d0:*/0x00,0x45,0xb9,0x01,0x00,0xb4,0x09,0xe8,0x9a,0x8b,0xfe,0xc2,0x3a,0x16,0x4a,0x04, +/*000090e0:*/0x72,0x0c,0x32,0xd2,0x89,0x15,0x3a,0x36,0x84,0x04,0x73,0x06,0xfe,0xc6,0x89,0x15, +/*000090f0:*/0xeb,0x2d,0x50,0x80,0x3e,0x49,0x04,0x03,0x7f,0x08,0xb8,0x00,0x08,0xe8,0x74,0x8b, +/*00009100:*/0xeb,0x09,0x80,0x3e,0x49,0x04,0x07,0x74,0xf1,0x32,0xe4,0x86,0x3e,0x62,0x04,0x53, +/*00009110:*/0x8a,0xfc,0x55,0xe8,0x27,0x00,0x5d,0x5b,0x86,0x3e,0x62,0x04,0x58,0x8b,0x15,0x5b, +/*00009120:*/0x59,0xe2,0x17,0x5a,0xf7,0xc6,0x01,0x00,0x75,0x02,0x89,0x15,0x8b,0x05,0x3a,0x3e, +/*00009130:*/0x62,0x04,0x75,0x03,0xe8,0xe1,0xe9,0xe9,0x88,0x8b,0xe9,0x60,0xff,0x33,0xc9,0x8a, +/*00009140:*/0x36,0x84,0x04,0x8a,0x16,0x4a,0x04,0xfe,0xca,0xb8,0x01,0x06,0xe8,0x25,0x8b,0xc3, +/*00009150:*/0xe8,0x99,0xe6,0x0a,0xc0,0x75,0x0f,0xe8,0x1c,0x00,0x8b,0xec,0x89,0x5e,0x10,0xc6, +/*00009160:*/0x46,0x1c,0x1a,0xe9,0x5c,0x8b,0x3c,0x01,0x75,0x09,0xe8,0x43,0x00,0x8b,0xec,0xc6, +/*00009170:*/0x46,0x1c,0x1a,0xe9,0x4c,0x8b,0xa0,0x8a,0x04,0xbf,0x54,0x92,0x2e,0x3a,0x05,0x72, +/*00009180:*/0x04,0xbb,0xff,0xff,0xc3,0x32,0xe4,0xd1,0xe0,0x03,0xf8,0x2e,0x8b,0x5d,0x04,0x0a, +/*00009190:*/0xdb,0x74,0x05,0x0a,0xff,0x75,0x04,0xc3,0x86,0xfb,0xc3,0xa0,0x10,0x04,0x24,0x30, +/*000091a0:*/0x3c,0x30,0x74,0x06,0xf6,0xc3,0x01,0x75,0xef,0xc3,0xf6,0xc3,0x01,0x74,0xe9,0xc3, +/*000091b0:*/0xbf,0x54,0x92,0x2e,0x8a,0x0d,0x32,0xc0,0x83,0xc7,0x04,0x2e,0x3b,0x1d,0x74,0x12, +/*000091c0:*/0x86,0xfb,0x2e,0x3b,0x1d,0x74,0x0b,0x83,0xc7,0x02,0xfe,0xc0,0x38,0xc8,0x7e,0xeb, +/*000091d0:*/0xb0,0xff,0xa2,0x8a,0x04,0xc3,0xbb,0x08,0x00,0xf6,0x06,0x89,0x04,0x02,0x74,0x0e, +/*000091e0:*/0xbb,0x07,0x00,0xba,0xcc,0x03,0xec,0xa8,0x01,0x74,0x1a,0xbb,0x08,0x00,0xba,0xb4, +/*000091f0:*/0x03,0xe8,0x88,0xe9,0x0a,0xc0,0x74,0x23,0xb7,0x01,0xe8,0x04,0xe6,0x80,0xfa,0xd4, +/*00009200:*/0x74,0x19,0x86,0xfb,0xc3,0xba,0xd4,0x03,0xe8,0x71,0xe9,0x0a,0xc0,0x74,0x0c,0xb7, +/*00009210:*/0x02,0xe8,0xed,0xe5,0x80,0xfa,0xb4,0x74,0x02,0x86,0xfb,0xc3,0x0f,0x08,0x0f,0x08, +/*00009220:*/0x0f,0x08,0x0f,0x08,0x03,0x01,0x03,0x01,0x01,0x01,0x00,0x08,0x01,0x01,0x01,0x01, +/*00009230:*/0x01,0x01,0x01,0x01,0x0f,0x01,0x0f,0x08,0x0f,0x04,0x00,0x02,0x0f,0x02,0x01,0x01, +/*00009240:*/0x0f,0x01,0xff,0x01,0xff,0xe0,0x0f,0x00,0x00,0x00,0x00,0x07,0x02,0x08,0xff,0x0e, +/*00009250:*/0x00,0x00,0x3f,0x00,0x10,0x01,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x02,0x01, +/*00009260:*/0x00,0x04,0x04,0x01,0x00,0x05,0x02,0x05,0x00,0x06,0x01,0x06,0x05,0x06,0x00,0x08, +/*00009270:*/0x01,0x08,0x00,0x07,0x02,0x07,0x06,0x07,0x3c,0x00,0x00,0x00,0xc0,0x01,0x03,0x00, +/*00009280:*/0xf7,0x01,0x03,0x00,0xc0,0x01,0x03,0x00,0xf7,0x01,0x03,0x00,0xc3,0x00,0x00,0x00, +/*00009290:*/0x00,0x00,0x00,0x00,0x52,0xe8,0x0d,0xc4,0xb2,0x2a,0xec,0x24,0x0f,0x5a,0xc3,0x2e, +/*000092a0:*/0xa0,0x8d,0xac,0x24,0x0c,0xc0,0xe8,0x02,0xc3,0x53,0x51,0xbb,0x78,0x92,0xb1,0x03, +/*000092b0:*/0x53,0x51,0x8a,0xc1,0xe8,0x42,0xd5,0x59,0x5b,0x66,0x2e,0x89,0x07,0x83,0xc3,0x04, +/*000092c0:*/0xfe,0xc1,0x80,0xf9,0x0a,0x75,0xe9,0x59,0x5b,0xc3,0x66,0x2e,0x83,0x3e,0x78,0x92, +/*000092d0:*/0x00,0x75,0x01,0xc3,0x66,0x50,0x53,0x51,0xbb,0x78,0x92,0xb5,0x03,0x66,0x2e,0x8b, +/*000092e0:*/0x07,0xe8,0xf8,0xd4,0x83,0xc3,0x04,0xfe,0xc5,0x80,0xfd,0x08,0x74,0xf6,0x80,0xfd, +/*000092f0:*/0x0a,0x75,0xea,0x59,0x5b,0x66,0x58,0xc3,0x50,0x53,0x52,0xbb,0x00,0x08,0xe8,0xb5, +/*00009300:*/0xc4,0xa8,0x80,0x74,0x11,0x0a,0xc9,0x74,0x05,0x80,0xf9,0x01,0x74,0x05,0xe8,0x38, +/*00009310:*/0x04,0xeb,0x03,0xe8,0x73,0x04,0x5a,0x5b,0x58,0xc3,0x8b,0xfb,0x8b,0xeb,0xbe,0x1e, +/*00009320:*/0x00,0xbb,0x9b,0x0a,0xba,0xc2,0x01,0xd1,0xe2,0x03,0xd3,0x2e,0x8a,0x07,0x0a,0xc0, +/*00009330:*/0x74,0x28,0x53,0x51,0x52,0x32,0xed,0x2e,0x8a,0x4f,0x07,0x41,0xc1,0xe1,0x03,0x2e, +/*00009340:*/0x8b,0x57,0x0c,0x42,0xe8,0x5c,0x04,0x5a,0x59,0x5b,0x74,0x0e,0x57,0x8b,0xcf,0x2b, +/*00009350:*/0xcd,0x41,0x8b,0xfd,0xf2,0xae,0x5f,0x74,0x01,0xaa,0x03,0xde,0x3b,0xda,0x72,0xcb, +/*00009360:*/0xc3,0x80,0xf9,0x04,0x74,0x0f,0x0a,0xc9,0x74,0x04,0xe8,0xcc,0x03,0xc3,0xe8,0xad, +/*00009370:*/0x03,0xe8,0xd5,0x03,0xc3,0xe8,0x11,0x04,0xc3,0x0a,0xed,0x75,0x16,0xe8,0x25,0xc3, +/*00009380:*/0xb2,0x2a,0xec,0x24,0x0f,0x2e,0x8a,0x26,0x8e,0xac,0x86,0xc4,0x8b,0xc8,0xb8,0x02, +/*00009390:*/0x00,0xeb,0x24,0xb8,0x00,0x00,0xfe,0xcd,0x75,0x1d,0x80,0xf9,0x01,0x74,0x0a,0x80, +/*000093a0:*/0xf9,0x02,0x74,0x05,0xb8,0x03,0x00,0xeb,0x0e,0xe8,0xf9,0xc2,0xb2,0x2a,0xec,0x24, +/*000093b0:*/0xf0,0x0a,0xc1,0xee,0xb8,0x01,0x00,0xc3,0xbf,0x78,0x92,0xc3,0x52,0xe8,0x41,0x8f, +/*000093c0:*/0x75,0x3f,0xe8,0x83,0xe4,0xb0,0x01,0xee,0x42,0xec,0x32,0xe4,0x40,0x8b,0xd8,0xc1, +/*000093d0:*/0xe3,0x03,0xe8,0xf3,0x0c,0x75,0x02,0x03,0xd8,0x4a,0xb0,0x12,0xee,0x42,0xec,0x8a, +/*000093e0:*/0xe0,0x4a,0xb0,0x07,0xee,0x42,0xec,0x8a,0xd0,0x80,0xe2,0x02,0xd0,0xea,0x8a,0xf0, +/*000093f0:*/0x80,0xe6,0x40,0xc0,0xee,0x05,0x8a,0xc4,0x32,0xe4,0x0a,0xe2,0x0a,0xe6,0x40,0xeb, +/*00009400:*/0x15,0xbb,0x00,0x02,0xe8,0xaa,0xc3,0x32,0xe4,0x40,0xc1,0xe0,0x03,0x50,0xbb,0x08, +/*00009410:*/0x02,0xe8,0xdc,0xc3,0x40,0x5b,0x93,0x5a,0xc3,0x2e,0x80,0x3e,0x8a,0xac,0x4e,0x75, +/*00009420:*/0x28,0x2e,0xc6,0x06,0x8a,0xac,0x54,0x2e,0x80,0x3e,0x8a,0xac,0x54,0x75,0x1a,0x50, +/*00009430:*/0x51,0xe8,0x71,0xc2,0xe8,0x0d,0x01,0xb4,0x30,0xe8,0x66,0xcd,0xb2,0x2a,0xec,0x24, +/*00009440:*/0xf0,0xe8,0xaa,0x24,0x0a,0xc4,0xee,0x59,0x58,0xc3,0x50,0xb0,0x08,0xe8,0xcd,0xd3, +/*00009450:*/0xb4,0x01,0x3c,0x03,0x74,0x02,0xb4,0x00,0x0a,0xe4,0x58,0xc3,0x9c,0x66,0x60,0x06, +/*00009460:*/0xfa,0xe8,0x58,0xff,0x50,0x53,0x5a,0x59,0xe8,0x96,0x8e,0x74,0x09,0xe8,0x33,0x03, +/*00009470:*/0x0f,0x84,0xcb,0x00,0xeb,0x07,0xe8,0x30,0x03,0x0f,0x84,0xc2,0x00,0x8b,0xeb,0x53, +/*00009480:*/0xbb,0x00,0x08,0xe8,0x30,0xc3,0x0c,0x80,0xe8,0x86,0xc2,0xbb,0x00,0x08,0x66,0xb8, +/*00009490:*/0x1b,0x00,0x00,0x00,0xe8,0xe2,0xc2,0x5b,0xe8,0x6f,0x04,0xe8,0x6a,0x06,0xe8,0x3c, +/*000094a0:*/0x07,0x53,0xbb,0x00,0x08,0x66,0xb8,0x0b,0x00,0x00,0x00,0xe8,0xcb,0xc2,0x5b,0xe8, +/*000094b0:*/0xcb,0x08,0x53,0xbb,0x00,0x08,0xe8,0xfd,0xc2,0x0c,0x80,0xe8,0x53,0xc2,0x5b,0xe8, +/*000094c0:*/0xd8,0x0a,0x53,0xbb,0x00,0x08,0x66,0xb8,0x09,0x00,0x00,0x00,0xe8,0xaa,0xc2,0x5b, +/*000094d0:*/0xe8,0x30,0xdd,0xe8,0x64,0x09,0x66,0xb9,0x08,0x06,0x00,0x00,0x53,0xbb,0x00,0x08, +/*000094e0:*/0x66,0x8b,0xc1,0xe8,0x93,0xc2,0x5b,0x53,0xbb,0xe0,0x00,0xe8,0xc3,0xc2,0x24,0x0f, +/*000094f0:*/0x3c,0x01,0x75,0x42,0xe8,0x9d,0xfd,0x3c,0x01,0x74,0x18,0x3c,0x03,0x74,0x14,0x3c, +/*00009500:*/0x02,0x74,0x08,0x3c,0x08,0x74,0x04,0x3c,0x07,0x75,0x2b,0x66,0xb8,0x29,0x01,0x29, +/*00009510:*/0x01,0xeb,0x06,0x66,0xb8,0x20,0x01,0x20,0x01,0xbb,0x6c,0x08,0xe8,0x5a,0xc2,0xbb, +/*00009520:*/0x60,0x0d,0x66,0xb8,0x00,0x01,0xff,0xff,0xe8,0x4e,0xc2,0xbb,0x68,0x0d,0xe8,0x7b, +/*00009530:*/0xc2,0x0c,0x01,0xe8,0xd1,0xc1,0x5b,0xe8,0xc7,0x8d,0x74,0x03,0xe8,0x01,0x01,0x07, +/*00009540:*/0x66,0x61,0x9d,0xc3,0x53,0x51,0x66,0x50,0x32,0xc9,0xe8,0xcf,0xe0,0x74,0x03,0xe9, +/*00009550:*/0xc8,0x00,0xbb,0x7c,0x00,0xe8,0x4f,0xc2,0x50,0x24,0xfd,0xe8,0xa4,0xc1,0xbb,0x54, +/*00009560:*/0x00,0xe8,0xbe,0xc2,0x66,0x50,0xbb,0xf8,0x03,0xe8,0xb6,0xc2,0x66,0x50,0xbb,0x00, +/*00009570:*/0x08,0xe8,0x7c,0xc2,0x50,0x8a,0xc4,0x0c,0x80,0xe8,0x95,0xc1,0xbb,0x00,0x08,0xe8, +/*00009580:*/0x69,0xc2,0x50,0xb8,0x12,0x00,0xe8,0xbb,0xc1,0xbb,0x8c,0x08,0xe8,0x93,0xc2,0x66, +/*00009590:*/0x50,0x66,0x33,0xc0,0x66,0xb8,0x13,0x01,0x88,0x00,0x53,0x50,0xbb,0xe0,0x00,0xe8, +/*000095a0:*/0x0f,0xc2,0x24,0x0f,0x3c,0x00,0x58,0x74,0x0c,0x66,0x25,0xff,0xff,0x0f,0xff,0x66, +/*000095b0:*/0x0d,0x00,0x00,0x40,0x00,0x5b,0xe8,0xc0,0xc1,0xbb,0x88,0x08,0xe8,0x63,0xc2,0x66, +/*000095c0:*/0x50,0x66,0xb8,0x66,0x66,0x09,0x01,0xe8,0xaf,0xc1,0xe8,0x75,0xd8,0xe8,0x72,0xd8, +/*000095d0:*/0xe8,0x6f,0xd8,0xbb,0x8c,0x08,0xe8,0xdd,0xc1,0x32,0xc9,0xa8,0x40,0x74,0x02,0xb1, +/*000095e0:*/0x20,0x24,0x80,0xc0,0xe8,0x03,0x0a,0xc8,0xbb,0x88,0x08,0x66,0x58,0xe8,0x89,0xc1, +/*000095f0:*/0xbb,0x8c,0x08,0x66,0x58,0xe8,0x81,0xc1,0xbb,0x00,0x08,0x58,0xe8,0x45,0xc1,0x58, +/*00009600:*/0xe8,0x46,0xc1,0xbb,0xf8,0x03,0x66,0x58,0xe8,0x6e,0xc1,0xbb,0x54,0x00,0x66,0x58, +/*00009610:*/0xe8,0x66,0xc1,0xbb,0x7c,0x00,0x58,0xe8,0xe8,0xc0,0x66,0x58,0x8a,0xc1,0x59,0x5b, +/*00009620:*/0xc3,0x50,0x53,0xe8,0x96,0xfd,0x2e,0x83,0x3d,0x00,0x74,0x0f,0x2e,0x3b,0x05,0x75, +/*00009630:*/0x06,0x2e,0x3b,0x5d,0x02,0x74,0x06,0x03,0xfa,0xeb,0xeb,0x33,0xff,0x5b,0x58,0xc3, +/*00009640:*/0x50,0x53,0x52,0x57,0xe8,0x4d,0xfc,0xa8,0x0b,0x75,0x52,0xbf,0xb4,0x96,0xba,0x08, +/*00009650:*/0x00,0xe8,0xcd,0xff,0x0b,0xff,0x74,0x57,0xe8,0x61,0xdc,0x2e,0x8a,0x65,0x04,0x3c, +/*00009660:*/0x08,0x74,0x44,0x2e,0x8a,0x65,0x05,0x3c,0x0f,0x74,0x3c,0x3c,0x10,0x74,0x38,0x3c, +/*00009670:*/0xa7,0x74,0x34,0x3c,0xa8,0x74,0x30,0x3c,0x18,0x74,0x04,0x3c,0x20,0x75,0x30,0x50, +/*00009680:*/0xe8,0x11,0xfc,0x3c,0x01,0x75,0x13,0xe8,0x32,0xfd,0x3d,0x40,0x01,0x75,0x0b,0x81, +/*00009690:*/0xfb,0xe0,0x01,0x75,0x05,0x58,0xb4,0x35,0xeb,0x0d,0x58,0xeb,0x0a,0xe8,0x1c,0xfd, +/*000096a0:*/0x3d,0x80,0x02,0x75,0x0a,0xb4,0x85,0xbb,0x18,0x08,0x8a,0xc4,0xe8,0x53,0xc0,0x5f, +/*000096b0:*/0x5a,0x5b,0x58,0xc3,0x40,0x01,0x90,0x01,0x45,0x3d,0xd0,0x01,0x40,0x01,0xe0,0x01, +/*000096c0:*/0x45,0x3d,0x10,0x02,0x90,0x01,0x58,0x02,0x85,0x85,0x78,0x02,0x00,0x02,0x80,0x01, +/*000096d0:*/0xfd,0xfd,0xb0,0x01,0x80,0x02,0x5e,0x01,0x85,0x7d,0x93,0x01,0x80,0x02,0x90,0x01, +/*000096e0:*/0x85,0x7d,0xbc,0x01,0x80,0x02,0xe0,0x01,0x85,0x7d,0x00,0x02,0xd0,0x02,0xe0,0x01, +/*000096f0:*/0xd5,0xd5,0x10,0x02,0xd0,0x02,0x40,0x02,0xd5,0xd5,0x6a,0x02,0x50,0x03,0xe0,0x01, +/*00009700:*/0x6d,0x6d,0x10,0x02,0x50,0x03,0x40,0x02,0x7b,0x77,0x6a,0x02,0x20,0x03,0x58,0x02, +/*00009710:*/0x2d,0x2d,0x78,0x02,0x00,0x04,0x00,0x03,0xfd,0xfd,0x20,0x03,0x00,0x00,0x50,0x53, +/*00009720:*/0x52,0xbb,0x00,0x08,0xe8,0x8f,0xc0,0x0c,0x80,0xe8,0xe5,0xbf,0xe8,0x76,0xbf,0xb2, +/*00009730:*/0x7c,0xec,0x24,0xfd,0xee,0x5a,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x00,0x08,0xe8,0x75, +/*00009740:*/0xc0,0x24,0x7f,0xe8,0xcb,0xbf,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x8c,0x08,0xe8,0x56, +/*00009750:*/0xc0,0x0c,0x01,0x24,0xbf,0xe8,0xaa,0xbf,0x52,0xe8,0x49,0xbf,0xb2,0x20,0xec,0x5a, +/*00009760:*/0x24,0x30,0x3c,0x10,0x74,0x18,0x3c,0x20,0x74,0x0a,0xe8,0x49,0xc0,0x24,0xf8,0xe8, +/*00009770:*/0x9f,0xbf,0xeb,0x12,0xe8,0x3f,0xc0,0x24,0xfc,0xe8,0x95,0xbf,0xeb,0x08,0xe8,0x35, +/*00009780:*/0xc0,0x24,0xfb,0xe8,0x8b,0xbf,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x8c,0x08,0xe8,0x16, +/*00009790:*/0xc0,0x24,0xfe,0x0c,0x40,0xe8,0x6a,0xbf,0xe8,0x1b,0xc0,0x0c,0x07,0xe8,0x71,0xbf, +/*000097a0:*/0x5b,0x58,0xc3,0x57,0xbf,0x02,0x00,0xeb,0x04,0x57,0xbf,0x01,0x00,0x50,0xbb,0x68, +/*000097b0:*/0xa2,0xe8,0x57,0x00,0x03,0xd8,0x2e,0x83,0x3f,0x00,0x74,0x1e,0x2e,0x39,0x0f,0x75, +/*000097c0:*/0x14,0x2e,0x39,0x57,0x02,0x75,0x0e,0x2e,0x8a,0x47,0x04,0x32,0xe4,0x85,0xc7,0x74, +/*000097d0:*/0x04,0xb0,0x01,0xeb,0x07,0x83,0xc3,0x32,0xeb,0xdc,0x32,0xc0,0xa8,0x01,0x58,0x5f, +/*000097e0:*/0xc3,0x53,0x0a,0xc0,0x74,0x23,0x8a,0xf8,0x2e,0x8a,0x1e,0x8f,0xac,0x8a,0xe3,0xc0, +/*000097f0:*/0xec,0x04,0x80,0xe4,0x03,0x0a,0xdc,0x80,0xe3,0xcf,0xfe,0xcf,0xf6,0xc3,0x01,0x75, +/*00009800:*/0x02,0xfe,0xc8,0xd0,0xeb,0x0a,0xff,0x75,0xf1,0x5b,0xc3,0x51,0x52,0x53,0xe8,0x83, +/*00009810:*/0xfa,0x24,0x0f,0xfe,0xc8,0xe8,0xc9,0xff,0xb9,0x3c,0x05,0x32,0xe4,0xf7,0xe1,0x5b, +/*00009820:*/0x5a,0x59,0xc3,0xbb,0xee,0xa5,0xe8,0xe2,0xff,0x03,0xd8,0x2e,0x83,0x3f,0x00,0x74, +/*00009830:*/0x10,0x2e,0x3b,0x0f,0x75,0x06,0x2e,0x3b,0x57,0x02,0x74,0x07,0x83,0xc3,0x0e,0xeb, +/*00009840:*/0xea,0x33,0xdb,0x0b,0xdb,0xc3,0x50,0x52,0xe8,0x5a,0xbe,0xb2,0x24,0xed,0x0c,0x04, +/*00009850:*/0x80,0xe4,0xfb,0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0x49,0xbe,0xb2,0x24,0xed,0x25, +/*00009860:*/0xfb,0xfb,0xef,0x5a,0x58,0xc3,0x66,0x53,0x66,0x51,0x66,0x52,0xb0,0x87,0xe8,0xac, +/*00009870:*/0xcf,0x8a,0xe0,0xb9,0xe8,0x03,0x80,0xfc,0x00,0x74,0x33,0xb9,0xd0,0x07,0x80,0xfc, +/*00009880:*/0x01,0x74,0x2b,0xb9,0xa0,0x0f,0x80,0xfc,0x02,0x74,0x23,0xb9,0x40,0x1f,0x80,0xfc, +/*00009890:*/0x03,0x74,0x1b,0xb9,0xe0,0x2e,0x80,0xfc,0x07,0x74,0x13,0xb9,0x70,0x17,0x80,0xfc, +/*000098a0:*/0x06,0x74,0x0b,0xb9,0x80,0x3e,0x80,0xfc,0x05,0x74,0x03,0xb9,0xb8,0x0b,0xb0,0x03, +/*000098b0:*/0xe8,0x6a,0xcf,0x25,0xff,0x00,0xf7,0xe1,0x66,0x0f,0xb7,0xca,0x66,0xc1,0xe1,0x10, +/*000098c0:*/0x8b,0xc8,0xb0,0x07,0xe8,0x42,0xcf,0x25,0xff,0x07,0x8b,0xd8,0x66,0x81,0xe3,0xff, +/*000098d0:*/0x07,0x00,0x00,0xe8,0xc9,0xf9,0x66,0xba,0x05,0x03,0x2d,0x00,0x3c,0x00,0x74,0x1a, +/*000098e0:*/0x66,0xba,0x14,0xb2,0x2b,0x00,0x3c,0x01,0x74,0x10,0x66,0xba,0x0a,0xd9,0x15,0x00, +/*000098f0:*/0x3c,0x02,0x74,0x06,0x66,0xba,0xe0,0x32,0x29,0x00,0x66,0x8b,0xc2,0x66,0xf7,0xe3, +/*00009900:*/0x66,0xf7,0xf1,0x66,0x5a,0x66,0x59,0x66,0x5b,0xc3,0x56,0x66,0x50,0x66,0x53,0x66, +/*00009910:*/0x51,0xb0,0x08,0x32,0xe4,0xb5,0xfc,0xe8,0x1f,0xcf,0xbe,0xd8,0x9a,0xe8,0x74,0xf9, +/*00009920:*/0xfe,0xc8,0xb4,0x06,0xf6,0xe4,0x32,0xe4,0x03,0xf0,0x66,0x33,0xc0,0x2e,0x8b,0x44, +/*00009930:*/0x04,0x66,0x33,0xc9,0x8b,0xc8,0x25,0x00,0x06,0x66,0xc1,0xe0,0x0c,0x81,0xe1,0xff, +/*00009940:*/0x01,0x66,0xc1,0xe1,0x08,0x66,0x0b,0xc1,0x66,0x33,0xc9,0x2e,0x8b,0x0c,0x66,0xc1, +/*00009950:*/0xe1,0x18,0x66,0x0b,0xc1,0x53,0x2e,0x8b,0x5c,0x02,0x0b,0xc3,0x5b,0x66,0x50,0xb0, +/*00009960:*/0x21,0xe8,0x95,0xce,0x66,0x8b,0xc8,0x66,0x81,0xe1,0xff,0xff,0x7f,0x0f,0x66,0x8b, +/*00009970:*/0xd8,0x66,0x81,0xe3,0x00,0x00,0x82,0xf0,0x66,0x81,0xe3,0xff,0xff,0x7f,0x0f,0x66, +/*00009980:*/0x58,0x66,0x0b,0xc3,0x66,0x3b,0xc8,0x74,0x39,0x66,0x50,0xb0,0xe2,0x32,0xe4,0xb5, +/*00009990:*/0xbf,0xe8,0xa5,0xce,0x66,0x58,0xb5,0x21,0xe8,0x41,0xce,0xb0,0x22,0xb4,0x02,0xb5, +/*000099a0:*/0xfd,0xe8,0x95,0xce,0xe8,0x9b,0xd4,0xb0,0x22,0x32,0xe4,0xb5,0xfd,0xe8,0x89,0xce, +/*000099b0:*/0xe8,0x45,0xd5,0xe8,0x42,0xd5,0xe8,0x89,0xd4,0xb0,0x22,0x32,0xe4,0xb5,0xf0,0xe8, +/*000099c0:*/0x77,0xce,0xb0,0xe2,0xb4,0x40,0xb5,0xbf,0xe8,0x6e,0xce,0xb0,0x62,0xb4,0x40,0xb5, +/*000099d0:*/0x3f,0xe8,0x65,0xce,0xb0,0x22,0xb4,0x00,0xb5,0xf7,0xe8,0x5c,0xce,0xb0,0x6d,0x32, +/*000099e0:*/0xe4,0xb5,0xfe,0xe8,0x53,0xce,0xb0,0x83,0x32,0xe4,0xb5,0xf8,0xe8,0x4a,0xce,0x32, +/*000099f0:*/0xff,0x2e,0x8a,0x5e,0x27,0x8a,0xe3,0xb0,0x03,0xe8,0x35,0xce,0x8a,0xe7,0xb5,0xfc, +/*00009a00:*/0xb0,0x43,0xe8,0x34,0xce,0x2e,0x8b,0x5e,0x28,0x8a,0xe3,0xb0,0x04,0xe8,0x21,0xce, +/*00009a10:*/0xb0,0x05,0xe8,0x1c,0xce,0xb0,0x06,0xe8,0x17,0xce,0xb0,0x07,0xe8,0x12,0xce,0x8a, +/*00009a20:*/0xe7,0xb5,0xf8,0xb0,0x44,0xe8,0x11,0xce,0xb0,0x45,0xe8,0x0c,0xce,0xb0,0x46,0xe8, +/*00009a30:*/0x07,0xce,0xb0,0x47,0xe8,0x02,0xce,0x2e,0x8a,0x46,0x2a,0xb4,0x02,0x2e,0x80,0x7e, +/*00009a40:*/0x2f,0x00,0x74,0x02,0xb4,0x03,0xf6,0xe4,0x8a,0xd8,0xb7,0x00,0x80,0xfb,0x01,0x74, +/*00009a50:*/0x25,0xb7,0x01,0x80,0xfb,0x02,0x74,0x1e,0xb7,0x02,0x80,0xfb,0x04,0x74,0x17,0xb7, +/*00009a60:*/0x03,0x80,0xfb,0x08,0x74,0x10,0xb7,0x06,0x80,0xfb,0x06,0x74,0x09,0xb7,0x07,0x80, +/*00009a70:*/0xfb,0x0c,0x74,0x02,0xb7,0x04,0x8a,0xe7,0xb5,0xf8,0xb0,0x84,0xe8,0xba,0xcd,0xb0, +/*00009a80:*/0x85,0xe8,0xb5,0xcd,0xb0,0x86,0xe8,0xb0,0xcd,0xb0,0x87,0xe8,0xab,0xcd,0xb0,0x02, +/*00009a90:*/0xb4,0x01,0xb5,0xfe,0xe8,0xa2,0xcd,0xb0,0x82,0xb4,0x03,0xb5,0xfc,0xe8,0x99,0xcd, +/*00009aa0:*/0xb0,0x43,0xb4,0x80,0xb5,0x7f,0xe8,0x90,0xcd,0xb0,0x43,0x32,0xe4,0xb5,0x7f,0xe8, +/*00009ab0:*/0x87,0xcd,0xb0,0x82,0x32,0xe4,0xb5,0xfc,0xe8,0x7e,0xcd,0xb0,0x02,0xb4,0x00,0xb5, +/*00009ac0:*/0xfc,0xe8,0x75,0xcd,0xe8,0x7b,0xd3,0xb0,0x08,0xb4,0x03,0xb5,0xfc,0xe8,0x69,0xcd, +/*00009ad0:*/0x66,0x59,0x66,0x5b,0x66,0x58,0x5e,0xc3,0x05,0x00,0x16,0x00,0xaf,0x00,0x03,0x00, +/*00009ae0:*/0x71,0x00,0x9c,0x02,0x03,0x00,0x2b,0x00,0xcd,0x00,0x04,0x00,0x11,0x00,0x86,0x00, +/*00009af0:*/0x05,0x00,0x16,0x00,0xaf,0x00,0x03,0x00,0x71,0x00,0x9c,0x02,0x03,0x00,0x43,0x00, +/*00009b00:*/0x40,0x01,0x03,0x00,0x71,0x00,0x9c,0x02,0x66,0x50,0x53,0x51,0x52,0xe8,0xf1,0x87, +/*00009b10:*/0x75,0x17,0xb9,0x08,0x00,0xe8,0xb0,0x05,0x75,0x03,0xb9,0x09,0x00,0x2e,0x8b,0x46, +/*00009b20:*/0x05,0x33,0xd2,0xf7,0xf1,0x8a,0xda,0xeb,0x48,0xe8,0x79,0xbb,0x2e,0x8b,0x46,0x00, +/*00009b30:*/0xc1,0xe8,0x03,0x48,0x66,0xc1,0xe0,0x10,0x2e,0x8b,0x46,0x05,0xc1,0xe8,0x03,0x48, +/*00009b40:*/0x66,0x50,0xb8,0x00,0x02,0xe8,0xfe,0xbc,0x66,0x58,0xb2,0x04,0x66,0xef,0x2e,0x8b, +/*00009b50:*/0x46,0x02,0x48,0x66,0xc1,0xe0,0x10,0x2e,0x8b,0x46,0x09,0x48,0x66,0x50,0xb8,0x08, +/*00009b60:*/0x02,0xe8,0xe2,0xbc,0x66,0x58,0xb2,0x04,0x66,0xef,0x2e,0x8b,0x5e,0x05,0x80,0xe3, +/*00009b70:*/0x07,0xb0,0x09,0xe8,0xa7,0xcc,0x2e,0x83,0x7e,0x30,0xff,0x75,0x07,0x83,0xe0,0xf0, +/*00009b80:*/0x0a,0xc3,0xeb,0x0d,0x2e,0x8b,0x46,0x30,0xb0,0xc9,0xe8,0xa4,0xcc,0x2e,0x8b,0x46, +/*00009b90:*/0x30,0x8a,0xe0,0xb0,0x09,0xe8,0x99,0xcc,0x66,0x33,0xc0,0xb0,0x01,0x2e,0x80,0x7e, +/*00009ba0:*/0x2f,0x01,0x74,0x02,0xb0,0x08,0x66,0x50,0xe8,0xfa,0xba,0xb8,0x30,0x02,0xe8,0x95, +/*00009bb0:*/0xbc,0x66,0x58,0xb2,0x04,0x66,0xef,0xb8,0x34,0x02,0xe8,0x89,0xbc,0xb2,0x04,0x66, +/*00009bc0:*/0xb8,0x01,0x00,0x00,0x00,0x66,0xef,0xb8,0x38,0x02,0xe8,0x79,0xbc,0xb2,0x04,0x66, +/*00009bd0:*/0xb8,0x02,0x00,0x00,0x00,0x66,0xef,0x5a,0x59,0x5b,0x66,0x58,0xc3,0x66,0x50,0x52, +/*00009be0:*/0x51,0x2e,0x8b,0x46,0x00,0xe8,0x19,0x87,0x75,0x07,0xe8,0xc7,0x04,0x74,0x02,0xd1, +/*00009bf0:*/0xe0,0x50,0xe8,0xb0,0xba,0xb8,0x04,0x08,0xe8,0x4b,0xbc,0xb2,0x04,0x33,0xc0,0xef, +/*00009c00:*/0xb8,0x0c,0x08,0xe8,0x40,0xbc,0xb2,0x04,0x2e,0x8b,0x46,0x05,0x48,0xef,0xb8,0x10, +/*00009c10:*/0x08,0xe8,0x32,0xbc,0xb2,0x04,0x58,0x50,0x48,0xef,0xb8,0x14,0x08,0xe8,0x26,0xbc, +/*00009c20:*/0xb2,0x04,0x58,0xef,0xb8,0x18,0x08,0xe8,0x1c,0xbc,0xb2,0x04,0x2e,0x8b,0x46,0x07, +/*00009c30:*/0xef,0xb8,0x20,0x08,0xe8,0x0f,0xbc,0xb2,0x04,0x2e,0x8b,0x46,0x09,0x48,0xef,0xb8, +/*00009c40:*/0x24,0x08,0xe8,0x01,0xbc,0xb2,0x04,0x2e,0x8b,0x46,0x02,0x48,0xef,0xb8,0x2c,0x08, +/*00009c50:*/0xe8,0xf3,0xbb,0xb2,0x04,0x2e,0x8b,0x46,0x0b,0xef,0xb8,0x4c,0x08,0xe8,0xe6,0xbb, +/*00009c60:*/0xb2,0x04,0x66,0x2e,0x8b,0x46,0x13,0x66,0xef,0xb8,0x54,0x08,0xe8,0xd7,0xbb,0xb2, +/*00009c70:*/0x04,0x66,0xb8,0x00,0x00,0x00,0x10,0x66,0xef,0xb8,0x58,0x08,0xe8,0xc7,0xbb,0xb2, +/*00009c80:*/0x04,0x66,0x2e,0x8b,0x46,0x1b,0x66,0xef,0xb8,0x5c,0x08,0xe8,0xb8,0xbb,0xb2,0x04, +/*00009c90:*/0x66,0x2e,0x8b,0x46,0x1f,0x66,0xef,0xb8,0x60,0x08,0xe8,0xa9,0xbb,0xb2,0x04,0x66, +/*00009ca0:*/0x2e,0x8b,0x46,0x23,0x66,0xef,0xe8,0x58,0x86,0x75,0x03,0xe9,0x9f,0x00,0xe8,0x0b, +/*00009cb0:*/0xf7,0x3d,0x80,0x02,0x74,0x71,0x3d,0x40,0x01,0x74,0x17,0x3d,0x00,0x02,0x74,0x03, +/*00009cc0:*/0xe9,0x8a,0x00,0xe8,0xce,0xf5,0xa8,0x0b,0x75,0x03,0xe9,0x80,0x00,0xb9,0x18,0x02, +/*00009cd0:*/0xeb,0x70,0xe8,0xbf,0xf5,0x3c,0x07,0x74,0x0a,0xa8,0x03,0x75,0x11,0xa8,0x08,0x75, +/*00009ce0:*/0x13,0xeb,0x16,0x81,0xfb,0xe0,0x01,0x75,0x0b,0xb9,0x58,0x01,0xeb,0x54,0x81,0xfb, +/*00009cf0:*/0xe0,0x01,0x74,0x59,0xb9,0x5d,0x01,0xeb,0x49,0x81,0xfb,0x90,0x01,0xb9,0x55,0x01, +/*00009d00:*/0x74,0x10,0x81,0xfb,0xe0,0x01,0x75,0x45,0xe8,0x89,0xf5,0x3c,0x01,0x75,0x03,0xb9, +/*00009d10:*/0x4d,0x01,0xe8,0xa7,0xd5,0x3c,0x08,0x7e,0x09,0x3c,0x10,0x7f,0x25,0xb9,0x55,0x01, +/*00009d20:*/0xeb,0x20,0xb9,0x59,0x01,0xeb,0x1b,0xe8,0x6a,0xf5,0xa8,0x0b,0x74,0x05,0xb9,0x98, +/*00009d30:*/0x02,0xeb,0x0f,0xe8,0x86,0xd5,0x3c,0x08,0x74,0x05,0xb9,0x90,0x02,0xeb,0x03,0xb9, +/*00009d40:*/0x99,0x02,0xb8,0x04,0x02,0xe8,0xfe,0xba,0xb2,0x04,0x8b,0xc1,0xef,0xe8,0x05,0x00, +/*00009d50:*/0x59,0x5a,0x66,0x58,0xc3,0x52,0x53,0x66,0x50,0x57,0xbf,0xb4,0x96,0xba,0x08,0x00, +/*00009d60:*/0xe8,0xbe,0xf8,0x0b,0xff,0x74,0x10,0xe8,0x3b,0xb9,0xb8,0x0c,0x02,0xe8,0xd6,0xba, +/*00009d70:*/0xb2,0x04,0x2e,0x8b,0x45,0x06,0xef,0x5f,0x66,0x58,0x5b,0x5a,0xc3,0x66,0x50,0x52, +/*00009d80:*/0xe8,0x22,0xb9,0xb8,0x34,0x08,0xe8,0xbd,0xba,0xb2,0x04,0x2e,0x8b,0x46,0x0d,0xef, +/*00009d90:*/0xb8,0x38,0x08,0xe8,0xb0,0xba,0xb2,0x04,0x2e,0x8b,0x46,0x0f,0xef,0xb8,0x3c,0x08, +/*00009da0:*/0xe8,0xa3,0xba,0xb2,0x04,0x2e,0x8b,0x46,0x11,0xef,0x5a,0x66,0x58,0xc3,0x8c,0x46, +/*00009db0:*/0x3b,0x00,0x91,0x01,0x00,0x00,0x03,0x01,0x00,0x00,0x0f,0x00,0x00,0x00,0x28,0x00, +/*00009dc0:*/0x00,0x00,0xcc,0x3b,0x3b,0x00,0xb2,0x01,0x3e,0x00,0x03,0x00,0x00,0x00,0x0f,0x00, +/*00009dd0:*/0x00,0x00,0x28,0x00,0x00,0x00,0xcc,0x46,0x3b,0x00,0xb2,0x01,0x3e,0x00,0x03,0x00, +/*00009de0:*/0x00,0x00,0x0f,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0xcc,0x3b,0x3b,0x00,0xb2,0x01, +/*00009df0:*/0x3e,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x0c,0x00, +/*00009e00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x00,0x00,0x1f,0x11,0x00,0x00,0x29,0x01, +/*00009e10:*/0x00,0x00,0x8c,0x38,0x38,0x00,0x95,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x0f,0x00, +/*00009e20:*/0x00,0x00,0x28,0x00,0x00,0x00,0xcc,0x49,0x3f,0x00,0xac,0x01,0x43,0x00,0x03,0x00, +/*00009e30:*/0x00,0x00,0x0f,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x66,0x56,0x66,0x50,0x51,0x52, +/*00009e40:*/0x57,0xe8,0x50,0xf4,0xbf,0x12,0x9e,0x3c,0x05,0x74,0x25,0xbf,0xfe,0x9d,0x3c,0x06, +/*00009e50:*/0x74,0x1e,0xbf,0x26,0x9e,0x3c,0x08,0x74,0x17,0xbf,0xae,0x9d,0x83,0xc7,0x14,0x3c, +/*00009e60:*/0x07,0x74,0x0d,0xbf,0xae,0x9d,0x24,0x07,0xfe,0xc8,0xb4,0x14,0xf6,0xe4,0x03,0xf8, +/*00009e70:*/0xe8,0x32,0xb8,0xb8,0x08,0x08,0xe8,0xcd,0xb9,0xb2,0x04,0x66,0x2e,0x8b,0x45,0x10, +/*00009e80:*/0x66,0xef,0xb8,0x48,0x08,0xe8,0xbe,0xb9,0xb2,0x04,0x66,0xb8,0x00,0x00,0x00,0x00, +/*00009e90:*/0x66,0xef,0x66,0x33,0xc0,0x2e,0x8b,0x4e,0x13,0xba,0x80,0x02,0xf7,0xf1,0x83,0xc0, +/*00009ea0:*/0x05,0xb1,0x0a,0xf6,0xf1,0x52,0x50,0xbb,0xe0,0x00,0xe8,0x04,0xb9,0x24,0x0f,0x3c, +/*00009eb0:*/0x01,0x58,0x75,0x28,0x50,0xe8,0xdc,0xf3,0x3c,0x01,0x74,0x13,0x3c,0x02,0x74,0x0f, +/*00009ec0:*/0x3c,0x08,0x74,0x0b,0x3c,0x03,0x74,0x07,0x3c,0x07,0x74,0x03,0x58,0xeb,0x0d,0x58, +/*00009ed0:*/0x32,0xe4,0xb9,0xdb,0x06,0xf7,0xe1,0xb9,0xe8,0x03,0xf7,0xf1,0x5a,0x66,0xc1,0xe0, +/*00009ee0:*/0x18,0x66,0x0d,0x00,0x00,0x09,0x00,0x2e,0x0b,0x46,0x2d,0x66,0x8b,0xf0,0xe8,0xb4, +/*00009ef0:*/0xb7,0xb8,0x50,0x08,0xe8,0x4f,0xb9,0xb2,0x04,0x66,0x8b,0xc6,0x66,0xef,0xb8,0x70, +/*00009f00:*/0x08,0xe8,0x42,0xb9,0xb2,0x04,0x66,0xb8,0x00,0x00,0x80,0x20,0x66,0x2e,0x0b,0x05, +/*00009f10:*/0x66,0xef,0xb8,0x74,0x08,0xe8,0x2e,0xb9,0xb2,0x04,0x66,0x2e,0x8b,0x45,0x04,0x66, +/*00009f20:*/0xef,0xb8,0x88,0x08,0xe8,0x1f,0xb9,0xb2,0x04,0x66,0x2e,0x8b,0x45,0x0c,0x66,0xef, +/*00009f30:*/0xb8,0x8c,0x08,0xe8,0x10,0xb9,0xb2,0x04,0x66,0x2e,0x8b,0x45,0x08,0x66,0x83,0xe0, +/*00009f40:*/0xfe,0x66,0x0d,0x40,0x00,0x88,0x07,0x53,0x50,0xbb,0xe0,0x00,0xe8,0x62,0xb8,0x24, +/*00009f50:*/0x0f,0x3c,0x00,0x74,0x23,0xbb,0x8c,0x08,0xe8,0x51,0xb8,0x24,0x03,0x3c,0x02,0x58, +/*00009f60:*/0x66,0x25,0xff,0xff,0x0f,0xff,0x74,0x08,0x66,0x0d,0x00,0x00,0x40,0x00,0xeb,0x09, +/*00009f70:*/0x66,0x0d,0x00,0x00,0x20,0x00,0xeb,0x01,0x58,0x5b,0x66,0xef,0xb8,0x90,0x08,0xe8, +/*00009f80:*/0xc4,0xb8,0xb2,0x04,0x66,0xb8,0x00,0x00,0x00,0x00,0x66,0xef,0xb2,0x7c,0xec,0x24, +/*00009f90:*/0x7f,0xee,0x5f,0x5a,0x59,0x66,0x58,0x66,0x5e,0xc3,0x66,0x50,0x53,0x51,0x52,0x56, +/*00009fa0:*/0x57,0xbe,0x0c,0xa2,0xe8,0x64,0xf8,0x03,0xf0,0x56,0xbb,0xac,0x08,0x66,0x33,0xc0, +/*00009fb0:*/0xb8,0xc8,0x00,0xe8,0xc3,0xb7,0x33,0xd2,0xbf,0xff,0x01,0x2e,0x8b,0x0c,0x83,0xe1, +/*00009fc0:*/0x01,0x2e,0x03,0x0c,0x3b,0xd1,0x73,0x26,0x2e,0x8b,0x44,0x02,0x66,0x25,0xff,0x3f, +/*00009fd0:*/0x00,0x00,0x66,0xc1,0xe0,0x0e,0x2e,0x8b,0x5c,0x04,0x81,0xe3,0xff,0x3f,0x0b,0xc3, +/*00009fe0:*/0x8b,0xdf,0xe8,0x51,0x00,0x83,0xc6,0x04,0x83,0xc2,0x02,0x4f,0xeb,0xd6,0x5e,0x33, +/*00009ff0:*/0xd2,0xbf,0xc8,0x00,0xd1,0xe7,0x83,0xcf,0x01,0x2e,0x8b,0x4c,0x2e,0x83,0xe1,0x01, +/*0000a000:*/0x2e,0x03,0x4c,0x2e,0x3b,0xd1,0x73,0x26,0x2e,0x8b,0x44,0x32,0x66,0x25,0xff,0x3f, +/*0000a010:*/0x00,0x00,0x66,0xc1,0xe0,0x0e,0x2e,0x8b,0x5c,0x30,0x81,0xe3,0xff,0x3f,0x0b,0xc3, +/*0000a020:*/0x8b,0xdf,0xe8,0x11,0x00,0x83,0xc6,0x04,0x83,0xc2,0x02,0x47,0xeb,0xd6,0x5f,0x5e, +/*0000a030:*/0x5a,0x59,0x5b,0x66,0x58,0xc3,0x66,0x50,0x53,0x53,0xbb,0x44,0x08,0xe8,0x39,0xb7, +/*0000a040:*/0x5b,0x8b,0xc3,0xbb,0x48,0x08,0xe8,0xfb,0xb6,0xbb,0x48,0x08,0xe8,0x5d,0xb7,0x0c, +/*0000a050:*/0x40,0xe8,0xb3,0xb6,0xb0,0x80,0xbb,0x48,0x08,0xe8,0x50,0xb7,0xa8,0x80,0x74,0xf6, +/*0000a060:*/0x5b,0x66,0x58,0xc3,0x53,0x8b,0xc3,0xbb,0x48,0x08,0xe8,0xd7,0xb6,0xbb,0x48,0x08, +/*0000a070:*/0xe8,0x39,0xb7,0x0c,0x10,0xe8,0x8f,0xb6,0xb0,0x20,0xbb,0x48,0x08,0xe8,0x2c,0xb7, +/*0000a080:*/0xa8,0x20,0x74,0xf6,0xbb,0x40,0x08,0xe8,0x98,0xb7,0x5b,0xc3,0x50,0xe8,0xfe,0xc0, +/*0000a090:*/0xa8,0x30,0x58,0xc3,0x51,0x52,0xe8,0x62,0x6f,0xe8,0x87,0xf7,0x5a,0x59,0xc3,0x50, +/*0000a0a0:*/0x53,0x32,0xc0,0xe8,0xe6,0xff,0x74,0x07,0xe8,0xe9,0xff,0x74,0x02,0xb0,0x01,0x0a, +/*0000a0b0:*/0xc0,0x5b,0x58,0xc3,0x50,0x52,0xba,0xc4,0x03,0xec,0x50,0xb0,0x01,0xee,0x42,0xec, +/*0000a0c0:*/0x4a,0xa8,0x08,0x58,0xee,0x5a,0x58,0xc3,0x50,0x52,0xba,0xc4,0x03,0xec,0x50,0xb0, +/*0000a0d0:*/0x01,0xee,0x42,0xec,0xa8,0x01,0xba,0xc4,0x03,0x58,0xee,0x5a,0x58,0xc3,0x53,0x51, +/*0000a0e0:*/0x52,0x56,0x66,0x57,0x66,0x0f,0xb7,0xff,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x0c, +/*0000a0f0:*/0xfc,0xe8,0xb1,0xb5,0xb2,0x00,0x66,0xed,0x66,0xab,0xbe,0xa2,0xa1,0x33,0xc9,0x2e, +/*0000a100:*/0x8b,0x1c,0x0b,0xdb,0x74,0x1a,0xe8,0x19,0xb7,0x83,0xf9,0x14,0x7f,0x08,0x8b,0xd9, +/*0000a110:*/0x66,0x2e,0x23,0x87,0xf4,0xa1,0x66,0xab,0x83,0xc1,0x04,0x83,0xc6,0x02,0xeb,0xdf, +/*0000a120:*/0xbb,0x00,0x08,0xe8,0x90,0xb6,0xa8,0x80,0x74,0x0f,0x33,0xdb,0xe8,0x35,0xff,0x66, +/*0000a130:*/0xab,0xb8,0x00,0x02,0x43,0x3b,0xd8,0x72,0xf3,0x66,0x5f,0x5e,0x5a,0x59,0x5b,0x81, +/*0000a140:*/0xc7,0x20,0x09,0xc3,0x53,0x51,0x52,0x57,0x66,0x56,0x8b,0x77,0x0c,0x03,0xf3,0x66, +/*0000a150:*/0x0f,0xb7,0xf6,0xfc,0xe8,0x4e,0xb5,0xb2,0x00,0x66,0xad,0x66,0xef,0xbf,0xa2,0xa1, +/*0000a160:*/0x2e,0x8b,0x1d,0x0b,0xdb,0x74,0x0a,0x66,0xad,0xe8,0x0d,0xb6,0x83,0xc7,0x02,0xeb, +/*0000a170:*/0xef,0xbb,0x00,0x08,0xe8,0x3f,0xb6,0xa8,0x80,0x74,0x0f,0x33,0xdb,0x66,0xad,0xe8, +/*0000a180:*/0xb4,0xfe,0xb8,0x00,0x02,0x43,0x3b,0xd8,0x72,0xf3,0xbb,0x00,0x08,0xe8,0x17,0xb6, +/*0000a190:*/0x0c,0x01,0xe8,0x6d,0xb5,0xb8,0x08,0x06,0xe8,0xa9,0xb5,0x66,0x5e,0x5f,0x5a,0x59, +/*0000a1a0:*/0x5b,0xc3,0x08,0x08,0x48,0x08,0x8c,0x08,0x98,0x08,0x9c,0x08,0xa0,0x08,0x00,0x08, +/*0000a1b0:*/0x04,0x08,0x0c,0x08,0x10,0x08,0x18,0x08,0x20,0x08,0x24,0x08,0x2c,0x08,0x34,0x08, +/*0000a1c0:*/0x38,0x08,0x3c,0x08,0x44,0x08,0x4c,0x08,0x50,0x08,0x54,0x08,0x58,0x08,0x5c,0x08, +/*0000a1d0:*/0x60,0x08,0x64,0x08,0x68,0x08,0x6c,0x08,0x70,0x08,0x74,0x08,0x78,0x08,0x7c,0x08, +/*0000a1e0:*/0x80,0x08,0x84,0x08,0x88,0x08,0x90,0x08,0xa4,0x08,0xa8,0x08,0xac,0x08,0xf4,0x08, +/*0000a1f0:*/0xf8,0x08,0x00,0x00,0x3b,0x0f,0x00,0x00,0xff,0x51,0x00,0x00,0x5f,0xf3,0xff,0x1f, +/*0000a200:*/0xff,0xff,0x00,0x85,0xff,0xff,0x00,0x05,0xff,0xff,0x0f,0x05,0x11,0x00,0x07,0x00, +/*0000a210:*/0x3f,0x00,0x63,0x02,0x24,0x0a,0x6b,0x2a,0x36,0x0a,0x6d,0x12,0xfe,0x1b,0x8f,0x1a, +/*0000a220:*/0xc7,0x1e,0x63,0x38,0xfe,0x1b,0xfe,0x1b,0x2a,0x1a,0x95,0x1e,0x31,0x0e,0x1b,0x20, +/*0000a230:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x01,0x20,0x0d,0x20, +/*0000a240:*/0x06,0x10,0x06,0x0c,0x06,0x10,0x18,0x18,0xe3,0x21,0x06,0x10,0x06,0x0c,0x06,0x10, +/*0000a250:*/0x17,0x18,0xd4,0x21,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000a260:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x01,0x5e,0x01,0x01,0x23,0x03,0x8b, +/*0000a270:*/0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x22,0x00,0x97,0x01,0x00,0x80,0x00,0x09,0x00, +/*0000a280:*/0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x10,0x0d, +/*0000a290:*/0x49,0x00,0x02,0x40,0x00,0x2e,0x05,0x01,0xff,0xff,0x40,0x01,0x90,0x01,0x01,0x26, +/*0000a2a0:*/0x03,0x79,0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x7f,0x02,0xaf,0x01,0x18,0x80,0x00, +/*0000a2b0:*/0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00,0x20,0x00, +/*0000a2c0:*/0x10,0x0b,0x3e,0x00,0x02,0x40,0x00,0x2e,0x05,0x01,0x06,0x10,0x40,0x01,0x90,0x01, +/*0000a2d0:*/0x02,0x97,0x01,0x45,0x01,0x0d,0x02,0x01,0x00,0x01,0x00,0x00,0x00,0xaf,0x01,0x18, +/*0000a2e0:*/0x80,0x00,0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00, +/*0000a2f0:*/0x20,0x00,0x10,0x0d,0x4a,0x00,0x04,0x40,0x00,0x97,0x02,0x01,0x07,0x10,0x40,0x01, +/*0000a300:*/0xe0,0x01,0x02,0x82,0x01,0x2d,0x01,0x58,0x02,0x01,0x00,0x00,0x00,0x4b,0x00,0xfc, +/*0000a310:*/0x01,0x49,0x92,0x00,0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x6d,0x07,0x00, +/*0000a320:*/0x00,0x92,0x24,0x00,0x10,0x6a,0x8e,0x02,0x04,0x38,0x00,0x97,0x02,0x01,0x02,0x10, +/*0000a330:*/0x68,0x01,0x90,0x01,0x01,0x86,0x03,0xcd,0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x26, +/*0000a340:*/0x00,0xaf,0x01,0x00,0x80,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00, +/*0000a350:*/0x0c,0x00,0x00,0x00,0x20,0x00,0x10,0x0d,0x52,0x00,0x02,0x40,0x00,0xd4,0x05,0x01, +/*0000a360:*/0x02,0x10,0x90,0x01,0x58,0x02,0x02,0xf0,0x01,0x85,0x01,0xee,0x02,0x01,0x00,0x00, +/*0000a370:*/0x00,0x63,0x01,0x7f,0x02,0xdb,0xb6,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03, +/*0000a380:*/0x80,0x00,0x2c,0x01,0x00,0xb6,0x2d,0x00,0x10,0x59,0xb9,0x01,0x02,0x2d,0x00,0x3d, +/*0000a390:*/0x03,0x01,0xff,0xff,0x00,0x02,0x80,0x01,0x02,0x9d,0x02,0x05,0x02,0x0c,0x02,0x01, +/*0000a3a0:*/0x00,0x00,0x00,0x50,0x02,0xa6,0x01,0xb8,0x7f,0x00,0x0d,0x00,0x00,0x40,0x10,0x00, +/*0000a3b0:*/0x04,0x03,0x80,0x0f,0x0c,0x00,0x00,0xe9,0x1f,0x00,0x10,0x79,0x35,0x02,0x02,0x40, +/*0000a3c0:*/0x00,0x25,0x04,0x01,0x05,0x10,0x80,0x02,0x5e,0x01,0x03,0x23,0x03,0x7e,0x02,0x0d, +/*0000a3d0:*/0x02,0x01,0x00,0x00,0x00,0x7f,0x02,0x97,0x01,0x18,0x80,0x00,0x0d,0x00,0x00,0x40, +/*0000a3e0:*/0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x10,0x0d,0x49,0x00, +/*0000a3f0:*/0x02,0x40,0x00,0x2e,0x05,0x01,0x03,0x10,0x80,0x02,0x90,0x01,0x03,0x23,0x03,0x7e, +/*0000a400:*/0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x7f,0x02,0xaf,0x01,0x18,0x80,0x00,0x0d,0x00, +/*0000a410:*/0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00,0x20,0x00,0x10,0x0d, +/*0000a420:*/0x49,0x00,0x02,0x40,0x00,0x2e,0x05,0x01,0x03,0x10,0x80,0x02,0xe0,0x01,0x03,0x23, +/*0000a430:*/0x03,0x7e,0x02,0x58,0x02,0x01,0x00,0x00,0x00,0x87,0x00,0xfc,0x01,0x49,0x92,0x00, +/*0000a440:*/0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x6d,0x07,0x00,0x00,0x92,0x24,0x00, +/*0000a450:*/0x10,0x5b,0x48,0x02,0x02,0x38,0x00,0x2e,0x05,0x01,0x03,0x10,0xd0,0x02,0x5e,0x01, +/*0000a460:*/0x01,0x86,0x03,0xdb,0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x26,0x00,0x97,0x01,0x00, +/*0000a470:*/0x80,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00,0x00,0x00, +/*0000a480:*/0x20,0x00,0x10,0x0d,0x52,0x00,0x02,0x40,0x00,0xd4,0x05,0x01,0x01,0x10,0xd0,0x02, +/*0000a490:*/0x90,0x01,0x01,0x8e,0x03,0xd1,0x02,0x0d,0x02,0x01,0x00,0x00,0x00,0x23,0x00,0xaf, +/*0000a4a0:*/0x01,0x00,0x80,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x00,0x0c,0x00, +/*0000a4b0:*/0x00,0x00,0x20,0x00,0x10,0x0b,0x46,0x00,0x02,0x40,0x00,0xd4,0x05,0x01,0x01,0x10, +/*0000a4c0:*/0xd0,0x02,0xe0,0x01,0x02,0x7f,0x03,0xd5,0x02,0x4e,0x02,0x01,0x00,0x00,0x00,0xa8, +/*0000a4d0:*/0x00,0xf3,0x01,0xd8,0x8f,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x09, +/*0000a4e0:*/0x08,0x00,0x00,0xf6,0x23,0x00,0x10,0x77,0x45,0x03,0x02,0x39,0x00,0xd4,0x05,0x01, +/*0000a4f0:*/0xff,0xff,0xd0,0x02,0x40,0x02,0x02,0x80,0x03,0xd5,0x02,0xc6,0x02,0x01,0x00,0x00, +/*0000a500:*/0x00,0xcd,0x00,0x5b,0x02,0x1a,0xad,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03, +/*0000a510:*/0x80,0xb9,0x00,0x00,0x00,0x46,0x2b,0x00,0x10,0x13,0xa1,0x00,0x02,0x2f,0x00,0xd4, +/*0000a520:*/0x05,0x01,0xff,0xff,0x20,0x03,0x58,0x02,0x02,0xde,0x03,0x2d,0x03,0xe4,0x02,0x01, +/*0000a530:*/0x00,0x00,0x00,0x86,0x03,0x76,0x02,0x6b,0xb4,0x00,0x09,0x00,0x00,0x40,0x10,0x00, +/*0000a540:*/0x04,0x03,0x80,0x00,0x2c,0x01,0x00,0x1a,0x2d,0x00,0x10,0x5b,0x50,0x02,0x02,0x2d, +/*0000a550:*/0x00,0x7a,0x06,0x00,0x06,0x10,0x50,0x03,0xe0,0x01,0x02,0x42,0x04,0x6d,0x03,0x4e, +/*0000a560:*/0x02,0x01,0x00,0x00,0x00,0x0f,0x00,0xf3,0x01,0xd8,0x8f,0x00,0x09,0x00,0x00,0x40, +/*0000a570:*/0x10,0x00,0x04,0x03,0x80,0x09,0x08,0x00,0x00,0xf6,0x23,0x00,0x10,0x79,0xb3,0x02, +/*0000a580:*/0x02,0x39,0x00,0xdd,0x06,0x00,0xff,0xff,0x00,0x04,0x00,0x03,0x02,0xfa,0x04,0xfd, +/*0000a590:*/0x03,0xbf,0x03,0x01,0x00,0x00,0x00,0x42,0x02,0x2b,0x03,0xcf,0xe9,0x00,0x31,0x00, +/*0000a5a0:*/0x00,0x40,0x10,0x00,0x02,0x03,0x40,0xc5,0x08,0x10,0x00,0x3a,0x1d,0x00,0x08,0x49, +/*0000a5b0:*/0x52,0x02,0x01,0x23,0x00,0x1e,0x08,0x01,0x02,0x10,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000a5c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000a5d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000a5e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x40,0x01, +/*0000a5f0:*/0x5e,0x01,0x28,0x10,0x2b,0x80,0x0c,0x00,0xa8,0x05,0x68,0xff,0x40,0x01,0x90,0x01, +/*0000a600:*/0x28,0x10,0x2b,0x80,0x0c,0x00,0xc2,0x0e,0x9c,0xff,0x68,0x01,0x90,0x01,0x28,0x10, +/*0000a610:*/0x2c,0x80,0x0c,0x00,0xc2,0x0e,0x9c,0xff,0x80,0x02,0x5e,0x01,0x50,0x01,0x54,0x81, +/*0000a620:*/0x0c,0x00,0xa8,0x05,0x68,0xff,0x80,0x02,0x90,0x01,0x50,0x01,0x54,0x81,0x0c,0x00, +/*0000a630:*/0xc2,0x0e,0x9c,0xff,0x80,0x02,0xe0,0x01,0x50,0x02,0x54,0x80,0x88,0x00,0x08,0x0c, +/*0000a640:*/0xe7,0x50,0xd0,0x02,0x5e,0x01,0x50,0x01,0x55,0x81,0x0c,0x00,0x9e,0x05,0x84,0xe4, +/*0000a650:*/0xd0,0x02,0x90,0x01,0x50,0x01,0x55,0x81,0x0c,0x00,0xc2,0x0e,0x9c,0xff,0x00,0x00, +/*0000a660:*/0x40,0x01,0x5e,0x01,0x2d,0x27,0x28,0x10,0x2b,0x80,0x0f,0x2e,0x00,0xa8,0x05,0x5d, +/*0000a670:*/0x68,0xff,0x01,0x40,0x01,0x90,0x01,0x2d,0x27,0x28,0x10,0x2c,0x80,0x0b,0x2e,0x00, +/*0000a680:*/0xc2,0x0e,0x8f,0x9c,0xff,0x01,0x68,0x01,0x90,0x01,0x2d,0x27,0x28,0x10,0x2b,0x80, +/*0000a690:*/0x0d,0x2e,0x00,0xc2,0x0e,0x8f,0x9c,0xff,0x01,0x80,0x02,0x5e,0x01,0x5e,0x4f,0x50, +/*0000a6a0:*/0x01,0x54,0x81,0xf0,0x1f,0x00,0x9e,0x05,0x5d,0x84,0xe4,0x00,0x80,0x02,0x90,0x01, +/*0000a6b0:*/0x60,0x4f,0x50,0x01,0x55,0x81,0x0b,0x2e,0x00,0xc2,0x0e,0x8f,0x9c,0xff,0x00,0xd0, +/*0000a6c0:*/0x02,0x5e,0x01,0x5e,0x4f,0x50,0x01,0x54,0x81,0x0b,0x2e,0x00,0x9e,0x05,0x5d,0x84, +/*0000a6d0:*/0xe4,0x00,0xd0,0x02,0x90,0x01,0x5e,0x4f,0x50,0x01,0x55,0x81,0x0b,0x2e,0x00,0xc2, +/*0000a6e0:*/0x0e,0x8f,0x9c,0xff,0x00,0x00,0x00,0x40,0x01,0x90,0x01,0x2d,0x27,0x28,0x10,0x2b, +/*0000a6f0:*/0x80,0x0b,0x2e,0x00,0xc2,0x0e,0x8f,0x9c,0xff,0x00,0x80,0x02,0x5e,0x01,0x5f,0x4f, +/*0000a700:*/0x50,0x01,0x54,0x81,0x0b,0x2e,0x00,0xa8,0x05,0x5d,0x68,0xff,0x00,0x80,0x02,0x90, +/*0000a710:*/0x01,0x5f,0x4f,0x50,0x01,0x54,0x81,0x0b,0x2e,0x00,0xc2,0x0e,0x8f,0x9c,0xff,0x00, +/*0000a720:*/0x80,0x02,0xdb,0x01,0x5f,0x4f,0x50,0x02,0x54,0x80,0x57,0xaa,0x00,0x08,0x0c,0xda, +/*0000a730:*/0xe7,0x50,0x00,0x80,0x02,0xe0,0x01,0x5f,0x4f,0x50,0x02,0x54,0x80,0x56,0xaa,0x00, +/*0000a740:*/0x08,0x0c,0xdf,0xe7,0x50,0x00,0x00,0x00,0x11,0x00,0x07,0x00,0x58,0x00,0x7c,0x02, +/*0000a750:*/0x31,0x0a,0x77,0x2a,0x95,0x0a,0x4f,0x12,0xfe,0x1b,0x22,0x1b,0xf9,0x1e,0x7c,0x38, +/*0000a760:*/0xfe,0x1b,0xfe,0x1b,0x31,0x1b,0xb5,0x1e,0x43,0x0e,0x1b,0x20,0x00,0x00,0x00,0x00, +/*0000a770:*/0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x01,0x20,0x0c,0x20,0x05,0x10,0x05,0x0c, +/*0000a780:*/0x05,0x10,0x01,0x14,0x21,0x18,0x40,0x22,0x05,0x10,0x05,0x0c,0x05,0x10,0x01,0x14, +/*0000a790:*/0x22,0x18,0x30,0x22,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000a7a0:*/0x00,0x00,0x00,0x00,0x40,0x01,0x5e,0x01,0x01,0x41,0x03,0x8b,0x02,0x70,0x02,0x03, +/*0000a7b0:*/0x00,0x00,0x00,0xd9,0x02,0xc0,0x01,0xcb,0x7f,0x00,0x0d,0x00,0x00,0x40,0x10,0x00, +/*0000a7c0:*/0x04,0x03,0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x62,0x36,0x02,0x02,0x40, +/*0000a7d0:*/0x00,0x1a,0x04,0x01,0xff,0xff,0x40,0x01,0x90,0x01,0x01,0x41,0x03,0x89,0x02,0x70, +/*0000a7e0:*/0x02,0x03,0x00,0x00,0x00,0xfc,0x02,0xd8,0x01,0xcb,0x7f,0x00,0x0d,0x00,0x00,0x40, +/*0000a7f0:*/0x10,0x00,0x04,0x03,0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x62,0x36,0x02, +/*0000a800:*/0x02,0x40,0x00,0x1a,0x04,0x01,0x01,0x10,0x40,0x01,0x90,0x01,0x02,0xae,0x01,0x45, +/*0000a810:*/0x01,0x73,0x02,0x03,0x00,0x00,0x00,0x46,0x00,0xdb,0x01,0x60,0x80,0x00,0x0d,0x00, +/*0000a820:*/0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xe5,0x0b,0x00,0x00,0x18,0x20,0x00,0x10,0x74, +/*0000a830:*/0xb7,0x02,0x04,0x40,0x00,0x0d,0x02,0x01,0xff,0xff,0x40,0x01,0xe0,0x01,0x02,0xa2, +/*0000a840:*/0x01,0x2d,0x01,0x73,0x02,0x03,0x00,0x00,0x00,0x1a,0x00,0x09,0x02,0x60,0x80,0x00, +/*0000a850:*/0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xe5,0x0b,0x00,0x00,0x18,0x20,0x00, +/*0000a860:*/0x10,0x5b,0x12,0x02,0x04,0x40,0x00,0x0d,0x02,0x01,0xff,0xff,0x68,0x01,0x90,0x01, +/*0000a870:*/0x01,0xaf,0x03,0xcc,0x02,0x72,0x02,0x03,0x00,0x00,0x00,0x55,0x00,0xdb,0x01,0x34, +/*0000a880:*/0x80,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xf2,0x0b,0x00,0x00,0x0d, +/*0000a890:*/0x20,0x00,0x10,0x5d,0x62,0x02,0x02,0x40,0x00,0x9d,0x04,0x01,0x07,0x10,0x90,0x01, +/*0000a8a0:*/0x58,0x02,0x02,0x3d,0x02,0x85,0x01,0xf9,0x02,0x03,0x00,0x00,0x00,0xf5,0x00,0x83, +/*0000a8b0:*/0x02,0xda,0x9b,0x00,0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x09,0x05,0x00, +/*0000a8c0:*/0x00,0xf6,0x26,0x00,0x10,0x47,0x58,0x01,0x02,0x34,0x00,0x90,0x02,0x01,0xff,0xff, +/*0000a8d0:*/0x00,0x02,0x80,0x01,0x02,0xb0,0x02,0x05,0x02,0x73,0x02,0x03,0x00,0x00,0x00,0x60, +/*0000a8e0:*/0x00,0xd1,0x01,0x60,0x80,0x00,0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xe5, +/*0000a8f0:*/0x0b,0x00,0x00,0x18,0x20,0x00,0x10,0x3a,0x16,0x01,0x02,0x40,0x00,0x48,0x03,0x01, +/*0000a900:*/0xff,0xff,0x80,0x02,0x5e,0x01,0x03,0x41,0x03,0x8e,0x02,0x70,0x02,0x03,0x00,0x00, +/*0000a910:*/0x00,0x88,0x02,0xc0,0x01,0xc4,0x7f,0x00,0x0d,0x00,0x00,0x40,0x10,0x00,0x04,0x03, +/*0000a920:*/0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x62,0x36,0x02,0x02,0x40,0x00,0x1a, +/*0000a930:*/0x04,0x01,0x01,0x10,0x80,0x02,0x90,0x01,0x03,0x41,0x03,0x96,0x02,0x70,0x02,0x03, +/*0000a940:*/0x00,0x00,0x00,0x88,0x02,0xd8,0x01,0xc4,0x7f,0x00,0x0d,0x00,0x00,0x40,0x10,0x00, +/*0000a950:*/0x04,0x03,0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x62,0x36,0x02,0x02,0x40, +/*0000a960:*/0x00,0x1a,0x04,0x01,0x01,0x10,0x80,0x02,0xe0,0x01,0x03,0x41,0x03,0x96,0x02,0x70, +/*0000a970:*/0x02,0x03,0x00,0x00,0x00,0xb0,0x02,0x08,0x02,0xc4,0x7f,0x00,0x0d,0x00,0x00,0x40, +/*0000a980:*/0x10,0x00,0x04,0x03,0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x62,0x36,0x02, +/*0000a990:*/0x02,0x40,0x00,0x1a,0x04,0x01,0x01,0x10,0xd0,0x02,0x5e,0x01,0x01,0xa5,0x03,0xd0, +/*0000a9a0:*/0x02,0x72,0x02,0x03,0x00,0x00,0x00,0x7e,0x00,0xc3,0x01,0x34,0x80,0x00,0x09,0x00, +/*0000a9b0:*/0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xf2,0x0b,0x00,0x00,0x0d,0x20,0x00,0x10,0x60, +/*0000a9c0:*/0x6f,0x02,0x02,0x40,0x00,0x9d,0x04,0x01,0xff,0xff,0xd0,0x02,0x90,0x01,0x01,0xa5, +/*0000a9d0:*/0x03,0xd0,0x02,0x72,0x02,0x03,0x00,0x00,0x00,0x58,0x00,0xdb,0x01,0x34,0x80,0x00, +/*0000a9e0:*/0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0xf2,0x0b,0x00,0x00,0x0d,0x20,0x00, +/*0000a9f0:*/0x10,0x60,0x6f,0x02,0x02,0x40,0x00,0x9d,0x04,0x01,0x06,0x10,0xd0,0x02,0xe0,0x01, +/*0000aa00:*/0x02,0x71,0x03,0xd5,0x02,0x6d,0x02,0x03,0x00,0x00,0x00,0x48,0x03,0x06,0x02,0x2e, +/*0000aa10:*/0x7f,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x34,0x0c,0x00,0x00,0xcb, +/*0000aa20:*/0x1f,0x00,0x10,0x4c,0xce,0x01,0x02,0x40,0x00,0x9d,0x04,0x01,0xff,0xff,0xd0,0x02, +/*0000aa30:*/0x40,0x02,0x02,0xba,0x03,0xd5,0x02,0xdc,0x02,0x03,0x00,0x00,0x00,0x8c,0x02,0x6a, +/*0000aa40:*/0x02,0xe9,0x95,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x85,0x06,0x00, +/*0000aa50:*/0x00,0x7a,0x25,0x00,0x10,0x51,0xa3,0x01,0x02,0x36,0x00,0x9d,0x04,0x00,0xff,0xff, +/*0000aa60:*/0x20,0x03,0x58,0x02,0x02,0x6f,0x04,0x2d,0x03,0xf1,0x02,0x03,0x00,0x00,0x00,0x62, +/*0000aa70:*/0x04,0x7b,0x02,0x36,0x9a,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03,0x80,0x72, +/*0000aa80:*/0x05,0x00,0x00,0x8d,0x26,0x00,0x10,0x85,0x4a,0x03,0x02,0x35,0x00,0x21,0x05,0x00, +/*0000aa90:*/0xff,0xff,0x50,0x03,0xe0,0x01,0x02,0x3c,0x04,0x6d,0x03,0x70,0x02,0x03,0x00,0x00, +/*0000aaa0:*/0x00,0x2d,0x04,0x00,0x02,0xcb,0x7f,0x00,0x09,0x00,0x00,0x40,0x10,0x00,0x04,0x03, +/*0000aab0:*/0x80,0x0d,0x0c,0x00,0x00,0xf2,0x1f,0x00,0x10,0x5f,0xdc,0x01,0x02,0x40,0x00,0x6f, +/*0000aac0:*/0x05,0x00,0xff,0xff,0x50,0x03,0x40,0x02,0x02,0x33,0x04,0x6d,0x03,0xda,0x02,0x03, +/*0000aad0:*/0x00,0x00,0x00,0x68,0x01,0x68,0x02,0x81,0x95,0x00,0x09,0x00,0x00,0x40,0x10,0x00, +/*0000aae0:*/0x04,0x03,0x80,0x9f,0x06,0x00,0x00,0x60,0x25,0x00,0x10,0x7b,0xcb,0x02,0x02,0x37, +/*0000aaf0:*/0x00,0x6f,0x05,0x00,0xff,0xff,0x00,0x04,0x00,0x03,0x02,0x0a,0x05,0xfd,0x03,0xc1, +/*0000ab00:*/0x03,0x03,0x00,0x00,0x00,0xde,0x03,0x2d,0x03,0xd0,0xc4,0x00,0x29,0x00,0x00,0x40, +/*0000ab10:*/0x10,0x00,0x02,0x03,0x40,0x65,0x0d,0x00,0x00,0x9a,0x18,0x00,0x08,0x85,0x94,0x03, +/*0000ab20:*/0x01,0x29,0x00,0x90,0x06,0x01,0xff,0xff,0x00,0x00,0x40,0x01,0x5e,0x01,0x28,0x10, +/*0000ab30:*/0x2b,0x80,0x0c,0x00,0xd0,0x05,0x84,0xe4,0x40,0x01,0x90,0x01,0x28,0x10,0x2c,0x80, +/*0000ab40:*/0x0c,0x00,0xe8,0x0e,0xb2,0xe5,0x68,0x01,0x90,0x01,0x28,0x10,0x2c,0x80,0x0c,0x00, +/*0000ab50:*/0xdf,0x0e,0xb2,0xe5,0x80,0x02,0x5e,0x01,0x50,0x02,0x56,0x80,0x0c,0x00,0xd0,0x05, +/*0000ab60:*/0x84,0xe4,0x80,0x02,0x90,0x01,0x50,0x02,0x57,0x80,0x0c,0x00,0xe8,0x0e,0xb2,0xe5, +/*0000ab70:*/0x80,0x02,0xe0,0x01,0x50,0x02,0x57,0x80,0x88,0x00,0x18,0x0c,0xe7,0x04,0xd0,0x02, +/*0000ab80:*/0x5e,0x01,0x50,0x02,0x55,0x81,0x0c,0x00,0xd0,0x05,0x84,0xe4,0xd0,0x02,0x90,0x01, +/*0000ab90:*/0x50,0x02,0x55,0x81,0x0c,0x00,0xdf,0x0e,0xb2,0xe5,0x00,0x00,0x40,0x01,0x5e,0x01, +/*0000aba0:*/0x2e,0x27,0x28,0x10,0x32,0x80,0x77,0x2e,0x00,0xd0,0x05,0x5d,0x84,0xe4,0x00,0x40, +/*0000abb0:*/0x01,0x90,0x01,0x2f,0x27,0x28,0x10,0x2c,0x80,0x70,0x2e,0x00,0xdf,0x0e,0x8f,0xb2, +/*0000abc0:*/0xe5,0x00,0x68,0x01,0x90,0x01,0x2e,0x27,0x28,0x10,0x32,0x80,0x71,0x2e,0x00,0xe8, +/*0000abd0:*/0x0e,0x8f,0xb2,0xe5,0x00,0x80,0x02,0x5e,0x01,0x60,0x4f,0x50,0x02,0x55,0x81,0x6a, +/*0000abe0:*/0x2e,0x00,0xd0,0x05,0x5d,0x84,0xe4,0x00,0x80,0x02,0x90,0x01,0x62,0x4f,0x50,0x02, +/*0000abf0:*/0x55,0x81,0x70,0x2e,0x00,0xdf,0x0e,0x8f,0xb2,0xe5,0x00,0xd0,0x02,0x5e,0x01,0x60, +/*0000ac00:*/0x4f,0x50,0x02,0x55,0x81,0x6f,0x2e,0x00,0xd0,0x05,0x5d,0x84,0xe4,0x00,0xd0,0x02, +/*0000ac10:*/0x90,0x01,0x60,0x4f,0x50,0x02,0x55,0x81,0x6f,0x2e,0x00,0xe8,0x0e,0x8f,0xb2,0xe5, +/*0000ac20:*/0x00,0x00,0x00,0x40,0x01,0x90,0x01,0x2f,0x27,0x28,0x10,0x2c,0x80,0x6e,0x2e,0x00, +/*0000ac30:*/0xe8,0x0e,0x8f,0xb2,0xe5,0x00,0x80,0x02,0x5e,0x01,0x63,0x4f,0x50,0x02,0x56,0x80, +/*0000ac40:*/0x6e,0x2e,0x00,0xd0,0x05,0x5d,0x84,0xe4,0x00,0x80,0x02,0x90,0x01,0x63,0x4f,0x50, +/*0000ac50:*/0x02,0x57,0x80,0x6e,0x2e,0x00,0xe8,0x0e,0x8f,0xb2,0xe5,0x00,0x80,0x02,0xdb,0x01, +/*0000ac60:*/0x60,0x4f,0x50,0x02,0x53,0x80,0x6f,0xaa,0x00,0x18,0x0c,0xda,0xe7,0x04,0x00,0x80, +/*0000ac70:*/0x02,0xe0,0x01,0x63,0x4f,0x50,0x02,0x57,0x80,0x6e,0xaa,0x00,0x18,0x0c,0xdf,0xe7, +/*0000ac80:*/0x04,0x00,0x00,0x00,0x24,0x54,0x56,0x01,0x0c,0x00,0x54,0x01,0x00,0x0f,0x03,0x03, +/*0000ac90:*/0x01,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe9,0x21,0x00,0x00,0x00,0x00,0x00, +/*0000aca0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50, +/*0000acb0:*/0x53,0x66,0x51,0x57,0x06,0x1e,0x55,0x8b,0xf5,0x81,0xec,0x80,0x00,0x8b,0xec,0x56, +/*0000acc0:*/0xb3,0x81,0x66,0x33,0xc9,0xb9,0x80,0x00,0x8c,0xd2,0x8b,0xfd,0x53,0xe8,0x5e,0xb1, +/*0000acd0:*/0x5b,0x5e,0x0a,0xe4,0x74,0x03,0xe9,0x9b,0x00,0x8b,0xfd,0x8c,0xd0,0x8e,0xd8,0x8e, +/*0000ace0:*/0xc0,0x26,0x80,0x3d,0x20,0x75,0x23,0x26,0xff,0x75,0x7e,0x56,0x66,0xb9,0x00,0x01, +/*0000acf0:*/0x80,0x01,0x8c,0xd2,0x8b,0xfd,0xe8,0x35,0xb1,0x5e,0x5b,0x8c,0xd0,0x8e,0xd8,0x8e, +/*0000ad00:*/0xc0,0x8b,0xfe,0x8b,0xf5,0xe8,0xe7,0x01,0xeb,0x72,0x8c,0xd0,0x8e,0xd8,0x8e,0xc0, +/*0000ad10:*/0x8b,0xfe,0x8b,0xf5,0x66,0x81,0x3c,0x00,0xff,0xff,0xff,0x75,0x57,0x66,0x81,0x7c, +/*0000ad20:*/0x04,0xff,0xff,0xff,0x00,0x75,0x4d,0x83,0xc6,0x23,0x8b,0x1c,0x83,0xc6,0x13,0xb9, +/*0000ad30:*/0x04,0x00,0x8b,0x04,0x3d,0xc4,0x09,0x77,0x08,0x83,0xc6,0x12,0x49,0x75,0xf3,0xeb, +/*0000ad40:*/0x07,0xb9,0x12,0x00,0xf3,0xa4,0xeb,0x34,0x8c,0xc8,0x8e,0xd8,0x8b,0xc3,0xf6,0xc4, +/*0000ad50:*/0x01,0x74,0x05,0xbe,0xc2,0xaf,0xeb,0xe9,0xf6,0xc4,0x08,0x74,0x05,0xbe,0xd4,0xaf, +/*0000ad60:*/0xeb,0xdf,0xa8,0x01,0x74,0x05,0xbe,0x0a,0xb0,0xeb,0xd6,0xa8,0x20,0x74,0x05,0xbe, +/*0000ad70:*/0x40,0xb0,0xeb,0xcd,0x32,0xc0,0xb9,0x12,0x00,0xaa,0xe2,0xfd,0x81,0xc4,0x80,0x00, +/*0000ad80:*/0x5d,0x1f,0x07,0x5f,0x66,0x59,0x5b,0x58,0xc3,0x55,0x83,0xec,0x12,0x8b,0xec,0xe8, +/*0000ad90:*/0x1d,0xff,0x8c,0xd0,0x8e,0xd8,0x8c,0xc8,0x8e,0xc0,0xbf,0x9d,0xac,0x8b,0xf5,0xb9, +/*0000ada0:*/0x09,0x00,0xf3,0xa5,0x83,0xc4,0x12,0x5d,0xc3,0x50,0x57,0xbf,0x9d,0xac,0x06,0x0e, +/*0000adb0:*/0x07,0xe8,0xd1,0x04,0x07,0x8b,0xd0,0x5f,0x58,0xc3,0x50,0x57,0xbf,0x9d,0xac,0x06, +/*0000adc0:*/0x0e,0x07,0xe8,0xce,0x04,0x07,0x8b,0xd0,0x5f,0x58,0xc3,0x80,0x02,0x20,0x03,0x00, +/*0000add0:*/0x04,0x00,0x05,0x78,0x05,0x40,0x06,0x00,0x00,0x00,0x00,0x50,0x53,0x52,0xe8,0xc4, +/*0000ade0:*/0xa8,0xb2,0x20,0xed,0x24,0xf7,0xee,0x50,0xbb,0x00,0x02,0xe8,0x40,0xb0,0x0a,0xdb, +/*0000adf0:*/0x58,0x74,0x08,0xf6,0xc4,0x03,0x75,0x03,0x0c,0x08,0xee,0x5a,0x5b,0x58,0xc3,0xe8, +/*0000ae00:*/0xd9,0xff,0xc3,0x50,0x53,0x52,0x50,0x24,0x7f,0xb4,0xff,0x8b,0xd8,0xf6,0xd7,0xe8, +/*0000ae10:*/0x93,0xa8,0xb2,0x11,0xec,0x22,0xc7,0x0a,0xc3,0xee,0x58,0xe8,0x87,0xa8,0xbb,0x84, +/*0000ae20:*/0x02,0xe8,0x83,0xa9,0x24,0xfd,0xe8,0xd9,0xa8,0xbb,0xa4,0x02,0xe8,0x78,0xa9,0x24, +/*0000ae30:*/0xfd,0x0c,0x01,0xe8,0xcc,0xa8,0xe8,0x7d,0xa9,0x0c,0x10,0xe8,0xd3,0xa8,0x5a,0x5b, +/*0000ae40:*/0x58,0xc3,0x50,0x52,0xe8,0x5e,0xa8,0xb2,0x12,0xec,0x0c,0x04,0xee,0xb2,0x29,0xb0, +/*0000ae50:*/0x0f,0xee,0x5a,0x58,0xc3,0x50,0x53,0x52,0xe8,0x4a,0xa8,0xb2,0x27,0xec,0xbb,0x00, +/*0000ae60:*/0x02,0xa8,0x08,0x74,0x02,0xeb,0x00,0xe8,0x04,0x00,0x5a,0x5b,0x58,0xc3,0x1e,0x06, +/*0000ae70:*/0xe8,0x16,0xff,0x8c,0xc8,0x8e,0xd8,0x8e,0xc0,0xbf,0x9d,0xac,0xe8,0x42,0x00,0x07, +/*0000ae80:*/0x1f,0x0a,0xc0,0x74,0x03,0xe8,0x7b,0xff,0xc3,0x52,0x50,0xe8,0x17,0xa8,0xe8,0x6e, +/*0000ae90:*/0xff,0xbb,0x00,0x02,0xe8,0x28,0x03,0x74,0x25,0xe8,0xd2,0xff,0xe8,0xa3,0xff,0x0a, +/*0000aea0:*/0xc0,0x74,0x1b,0xe8,0x7a,0xb3,0x8a,0xe0,0xe8,0x14,0x03,0x74,0x03,0x80,0xcc,0x08, +/*0000aeb0:*/0xe8,0x5e,0xb3,0xeb,0x09,0xe8,0xed,0xa7,0xb2,0x20,0xec,0x0c,0x08,0xee,0x58,0x5a, +/*0000aec0:*/0xc3,0x53,0x51,0x57,0x50,0xe8,0xbd,0x03,0x8b,0xd8,0x58,0x32,0xc0,0x83,0xfb,0x00, +/*0000aed0:*/0x74,0x19,0x33,0xc9,0xbf,0xcb,0xad,0x3b,0x1d,0x74,0x0c,0xfe,0xc1,0x83,0xc7,0x02, +/*0000aee0:*/0x80,0xf9,0x08,0x74,0x06,0xeb,0xf0,0xb0,0x01,0xd2,0xe0,0x5f,0x59,0x5b,0xc3,0x50, +/*0000aef0:*/0x33,0xc0,0x33,0xd2,0xf6,0xc3,0x20,0x74,0x11,0x8a,0x04,0xb1,0x01,0xa8,0x80,0x74, +/*0000af00:*/0x02,0xb1,0x03,0x24,0x1f,0xf6,0xe1,0x40,0x03,0xd0,0x8a,0xc3,0xc0,0xe8,0x02,0x24, +/*0000af10:*/0x07,0xb4,0x08,0xf6,0xe4,0x03,0xd0,0x8b,0xca,0x8a,0xc3,0x24,0x03,0xb4,0x1b,0xf6, +/*0000af20:*/0xe4,0x03,0xd0,0x8a,0xc7,0xc0,0xe8,0x03,0x24,0x1f,0xb4,0x04,0xf6,0xe4,0x03,0xd0, +/*0000af30:*/0x03,0xce,0x03,0xf2,0x8a,0xc7,0x24,0x03,0x8b,0xd9,0x32,0xed,0x8a,0xc8,0x8b,0x04, +/*0000af40:*/0x0b,0xc0,0x75,0x08,0x83,0xc6,0x12,0x49,0x75,0xf4,0xeb,0x07,0xb9,0x12,0x00,0xf3, +/*0000af50:*/0xa4,0xeb,0x6d,0x8b,0xf3,0x8b,0x44,0x09,0x26,0x89,0x05,0x8b,0x44,0x12,0x26,0x89, +/*0000af60:*/0x45,0x0c,0x8a,0x44,0x14,0x26,0x88,0x45,0x0e,0x8b,0x44,0x02,0x26,0x89,0x45,0x0f, +/*0000af70:*/0x8a,0x44,0x1a,0x26,0x88,0x45,0x11,0x8a,0x44,0x15,0x26,0x88,0x45,0x02,0x8a,0x44, +/*0000af80:*/0x16,0x26,0x88,0x45,0x05,0x66,0x8b,0x44,0x0e,0x66,0x26,0x89,0x45,0x08,0x8a,0x44, +/*0000af90:*/0x0b,0x26,0x88,0x45,0x03,0x8a,0x44,0x0c,0x26,0x88,0x45,0x06,0x8a,0x44,0x0d,0x8a, +/*0000afa0:*/0xe0,0xc0,0xe4,0x04,0x8a,0x44,0x17,0x24,0xf0,0x0a,0xc4,0x26,0x88,0x45,0x04,0x8a, +/*0000afb0:*/0x44,0x0d,0x8a,0xe0,0x80,0xe4,0x0f,0x8a,0x44,0x17,0x0a,0xc4,0x26,0x88,0x45,0x07, +/*0000afc0:*/0x58,0xc3,0xbc,0x34,0x00,0x98,0x51,0x00,0x2a,0x40,0x10,0x90,0x13,0x00,0x00,0x00, +/*0000afd0:*/0x00,0x00,0x00,0x1e,0x64,0x19,0x00,0x40,0x41,0x00,0x26,0x30,0x18,0x88,0x36,0x00, +/*0000afe0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x4c,0x1d,0x00,0x30,0x41,0x00,0x26,0x30,0x18,0x88, +/*0000aff0:*/0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0xc3,0x1e,0x00,0x20,0x41,0x00,0x20,0x30, +/*0000b000:*/0x10,0x60,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0xa0,0x0f,0x20,0x00,0x31,0x58, +/*0000b010:*/0x1c,0x20,0x28,0x80,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x88,0x13,0x20,0xf0, +/*0000b020:*/0x30,0x58,0x42,0x20,0x38,0x78,0x56,0x08,0x00,0x00,0x00,0x00,0x00,0x1e,0x56,0x13, +/*0000b030:*/0x20,0x00,0x31,0x58,0x19,0x20,0x10,0x50,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x1e, +/*0000b040:*/0xd6,0x09,0x80,0xa0,0x20,0xe0,0x2d,0x10,0x10,0x60,0xa2,0x00,0x00,0x00,0x00,0x08, +/*0000b050:*/0x08,0x18,0x4e,0x0c,0x80,0xc0,0x20,0xe0,0x28,0x10,0x18,0x28,0x93,0x00,0x00,0x00, +/*0000b060:*/0x00,0x08,0x08,0x18,0x4e,0x0c,0x80,0xc8,0x20,0xe0,0x14,0x10,0x10,0x40,0x13,0x00, +/*0000b070:*/0x00,0x00,0x00,0x00,0x00,0x18,0xb9,0x04,0x00,0x51,0x57,0x8b,0x5d,0x1d,0xe8,0xbf, +/*0000b080:*/0xb6,0x5f,0x59,0xfe,0xc5,0xfe,0xc9,0x75,0xf0,0x8b,0x45,0x1d,0xe8,0x81,0xbd,0xc3, +/*0000b090:*/0x50,0x53,0xbb,0x84,0x02,0xe8,0x53,0xa7,0x80,0xe4,0xdf,0xe8,0xa6,0xa6,0xe8,0x03, +/*0000b0a0:*/0x00,0x5b,0x58,0xc3,0x66,0x50,0x53,0xbb,0x84,0x02,0xe8,0x75,0xa7,0x66,0xc1,0xc0, +/*0000b0b0:*/0x10,0x24,0xc3,0x80,0xcc,0x03,0x80,0xe4,0xf7,0x66,0xc1,0xc0,0x10,0xe8,0xb9,0xa6, +/*0000b0c0:*/0xe8,0x7f,0xbd,0xbb,0x84,0x02,0xe8,0x27,0xa7,0x24,0xfe,0x0c,0x82,0x80,0xcc,0x08, +/*0000b0d0:*/0xe8,0x5b,0xae,0x74,0x04,0x0c,0x03,0x24,0x7f,0x0c,0x40,0xe8,0x6b,0xa6,0xe8,0xb4, +/*0000b0e0:*/0x00,0x75,0x03,0xe8,0x39,0x02,0x5b,0x66,0x58,0xc3,0x50,0x53,0xbb,0x84,0x02,0xe8, +/*0000b0f0:*/0xb5,0xa6,0x0c,0x05,0xe8,0x0b,0xa6,0xbb,0xa4,0x02,0xe8,0xaa,0xa6,0x0c,0x01,0xe8, +/*0000b100:*/0x00,0xa6,0x5b,0x58,0xc3,0x66,0x50,0x53,0xbb,0x84,0x02,0xe8,0x14,0xa7,0x66,0x33, +/*0000b110:*/0xc0,0xe8,0x65,0xa6,0xe8,0xf8,0x01,0xe8,0x31,0xae,0x5b,0x66,0x58,0xc3,0x50,0x53, +/*0000b120:*/0xbb,0x84,0x02,0xe8,0x81,0xa6,0x24,0xfd,0xe8,0xd7,0xa5,0x5b,0x58,0xc3,0x50,0x53, +/*0000b130:*/0xbb,0x84,0x02,0xe8,0x71,0xa6,0x0c,0x02,0xe8,0xc7,0xa5,0x5b,0x58,0xc3,0x50,0x53, +/*0000b140:*/0xe8,0x61,0xff,0xe8,0x5f,0x00,0x75,0x0b,0xbb,0x84,0x02,0xe8,0x59,0xa6,0x24,0xfa, +/*0000b150:*/0xe8,0xaf,0xa5,0xbb,0x88,0x02,0xe8,0x4e,0xa6,0x0c,0x04,0xe8,0xa4,0xa5,0x5b,0x58, +/*0000b160:*/0xc3,0x50,0x53,0xbb,0x88,0x02,0xe8,0x3e,0xa6,0x24,0xfb,0xe8,0x94,0xa5,0xe8,0xda, +/*0000b170:*/0xad,0x5b,0x58,0xc3,0xc3,0x50,0x53,0xbb,0x88,0x02,0xe8,0x2a,0xa6,0x24,0xfd,0xe8, +/*0000b180:*/0x80,0xa5,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x88,0x02,0xe8,0x1a,0xa6,0x0c,0x02,0xe8, +/*0000b190:*/0x70,0xa5,0x5b,0x58,0xc3,0x50,0x52,0xe8,0x0b,0xa5,0xe8,0x63,0xad,0xeb,0x03,0xe8, +/*0000b1a0:*/0x75,0xad,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xfb,0xa4,0xb2,0x23,0xec,0xa8,0x08,0x5a, +/*0000b1b0:*/0x58,0xc3,0x50,0x52,0xe8,0xee,0xa4,0xb2,0x23,0xec,0xa8,0x80,0x5a,0x58,0xc3,0x50, +/*0000b1c0:*/0xe8,0xcb,0xaf,0xa8,0x08,0x58,0xc3,0x50,0x52,0xe8,0xd9,0xa4,0xb2,0x24,0xed,0x0c, +/*0000b1d0:*/0x08,0x80,0xe4,0xf7,0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xc8,0xa4,0xb2,0x24,0xed, +/*0000b1e0:*/0x25,0xf7,0xf7,0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xb9,0xa4,0xb2,0x24,0xed,0x0c, +/*0000b1f0:*/0x80,0x80,0xe4,0x7f,0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xa8,0xa4,0xb2,0x24,0xed, +/*0000b200:*/0x25,0x7f,0x7f,0xef,0x5a,0x58,0xc3,0x80,0xf9,0x04,0x74,0x1f,0x0a,0xc9,0x74,0x0c, +/*0000b210:*/0xbb,0x84,0x02,0xe8,0x91,0xa5,0x24,0xfa,0xe8,0xe7,0xa4,0xc3,0xbb,0x84,0x02,0xe8, +/*0000b220:*/0x85,0xa5,0x0c,0x05,0xe8,0xdb,0xa4,0xe8,0xf4,0xfe,0xc3,0xe8,0x00,0xff,0xc3,0x50, +/*0000b230:*/0x53,0x51,0x52,0xe8,0x89,0xff,0x74,0x0e,0xe8,0xc0,0x5d,0xe8,0x6b,0xfb,0x32,0xc0, +/*0000b240:*/0x3b,0xd1,0x72,0x02,0xb0,0x01,0x0a,0xc0,0x5a,0x59,0x5b,0x58,0xc3,0x66,0x50,0x53, +/*0000b250:*/0x51,0x52,0x1e,0x06,0x57,0xc7,0x46,0x19,0x00,0x00,0xe8,0x9e,0x5d,0xe8,0x45,0x01, +/*0000b260:*/0x5f,0x07,0x1f,0x5a,0x59,0x5b,0x66,0x58,0xc3,0x66,0x50,0x52,0xe8,0xf7,0x04,0xe8, +/*0000b270:*/0x9d,0x00,0xe8,0xa2,0xac,0x75,0x03,0xe8,0xa5,0x00,0x5a,0x66,0x58,0xc3,0xe8,0x04, +/*0000b280:*/0x00,0xc1,0xe8,0x03,0xc3,0x26,0x8a,0x45,0x04,0x8a,0xe0,0x26,0x8a,0x45,0x02,0xc0, +/*0000b290:*/0xec,0x04,0xc3,0x26,0x8a,0x45,0x07,0x8a,0xe0,0x26,0x8a,0x45,0x05,0xc0,0xec,0x04, +/*0000b2a0:*/0xc3,0xe8,0x04,0x00,0xc1,0xe8,0x03,0xc3,0x26,0x8a,0x45,0x04,0x8a,0xe0,0x26,0x8a, +/*0000b2b0:*/0x45,0x03,0x80,0xe4,0x0f,0xc3,0x26,0x8a,0x45,0x07,0x8a,0xe0,0x26,0x8a,0x45,0x06, +/*0000b2c0:*/0x80,0xe4,0x0f,0xc3,0xe8,0x04,0x00,0xc1,0xe8,0x03,0xc3,0x26,0x8a,0x45,0x0b,0x8a, +/*0000b2d0:*/0xe0,0x26,0x8a,0x45,0x09,0x80,0xe4,0x3f,0xc0,0xec,0x04,0xc3,0x26,0x8a,0x45,0x0b, +/*0000b2e0:*/0x8a,0xe0,0x80,0xe4,0x03,0x26,0x8a,0x45,0x0a,0xc0,0xe0,0x04,0xc1,0xe8,0x04,0xc3, +/*0000b2f0:*/0x26,0x8a,0x45,0x0b,0x8a,0xe0,0x26,0x8a,0x45,0x08,0xc0,0xec,0x06,0xc3,0x26,0x8a, +/*0000b300:*/0x45,0x0b,0x8a,0xe0,0x26,0x8a,0x45,0x0a,0xc0,0xec,0x02,0xc1,0xe8,0x04,0xc3,0x50, +/*0000b310:*/0x53,0xbb,0x7c,0x02,0xe8,0x90,0xa4,0x24,0xf0,0xe8,0xe6,0xa3,0x5b,0x58,0xc3,0x53, +/*0000b320:*/0xbb,0x7c,0x02,0xe8,0x81,0xa4,0x0c,0x0c,0xe8,0xd7,0xa3,0x06,0x57,0x8c,0xc8,0xbf, +/*0000b330:*/0x9d,0xac,0x8e,0xc0,0x66,0x33,0xc0,0xe8,0x67,0xff,0xbb,0x50,0x02,0xe8,0x39,0xa4, +/*0000b340:*/0xe8,0x73,0xff,0xbb,0x54,0x02,0xe8,0x30,0xa4,0xe8,0x78,0xff,0x66,0xc1,0xe0,0x10, +/*0000b350:*/0xe8,0x9d,0xff,0xbb,0xc4,0x02,0xe8,0x20,0xa4,0xbb,0x58,0x02,0xe8,0x1a,0xa4,0xe8, +/*0000b360:*/0x7a,0xff,0x66,0xc1,0xe0,0x10,0xe8,0x95,0xff,0xbb,0xc8,0x02,0xe8,0x0a,0xa4,0xbb, +/*0000b370:*/0x5c,0x02,0xe8,0x04,0xa4,0xe8,0x06,0xff,0x48,0x66,0xc1,0xe0,0x10,0xe8,0x13,0xff, +/*0000b380:*/0x48,0xbb,0x78,0x02,0xe8,0xf2,0xa3,0xbb,0x8c,0x02,0xe8,0x29,0xa4,0x24,0xfd,0x0c, +/*0000b390:*/0x08,0xe8,0x7d,0xa3,0xbb,0x90,0x02,0xe8,0x1c,0xa4,0x24,0xfd,0x0c,0x08,0xe8,0x70, +/*0000b3a0:*/0xa3,0x5f,0x07,0x5b,0xc3,0x55,0x83,0xc5,0x19,0x06,0x8c,0xc8,0xbf,0x9d,0xac,0x8e, +/*0000b3b0:*/0xc0,0xc7,0x46,0x00,0x00,0x00,0xe8,0xcc,0xfe,0x3b,0xc1,0x73,0x03,0xe9,0xd6,0x00, +/*0000b3c0:*/0xc1,0xe9,0x03,0x49,0x26,0x8b,0x05,0x0b,0xc0,0x75,0x03,0xe9,0xc8,0x00,0x52,0x89, +/*0000b3d0:*/0x46,0x1d,0x89,0x4e,0x02,0x8b,0xd1,0xe8,0xc7,0xfe,0x50,0x83,0xf9,0x27,0x75,0x02, +/*0000b3e0:*/0xd1,0xe8,0x8b,0xd8,0x03,0xc1,0x03,0xda,0x83,0xe3,0x3f,0x88,0x5e,0x0d,0x5b,0x83, +/*0000b3f0:*/0xe8,0x04,0x89,0x46,0x00,0x26,0x8a,0x45,0x0f,0xc0,0xe8,0x03,0x32,0xe4,0x89,0x46, +/*0000b400:*/0x08,0x89,0x46,0x0a,0x88,0x56,0x0c,0xe8,0xe6,0xfe,0xc1,0xe8,0x03,0x03,0xc2,0xc1, +/*0000b410:*/0xe0,0x03,0x89,0x46,0x04,0x8b,0xd9,0x8b,0xc8,0xe8,0xaf,0xfe,0x83,0xfb,0x27,0x75, +/*0000b420:*/0x02,0xd1,0xe8,0x80,0xe4,0x03,0x03,0xc1,0xc1,0xe8,0x03,0x83,0xe0,0x3f,0x50,0x26, +/*0000b430:*/0x8a,0x45,0x11,0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x02,0xc0,0xe3,0x06,0x0a,0xc3, +/*0000b440:*/0x32,0xe4,0x89,0x46,0x06,0x59,0x49,0x89,0x4e,0x10,0x8b,0xd1,0xe8,0x67,0xfe,0x8b, +/*0000b450:*/0xd8,0x03,0xc1,0x03,0xda,0x81,0xe3,0xff,0x00,0x88,0x5e,0x1c,0x48,0x89,0x46,0x0e, +/*0000b460:*/0x26,0x8a,0x45,0x10,0x32,0xe4,0x89,0x46,0x16,0x89,0x46,0x18,0x89,0x56,0x1a,0xe8, +/*0000b470:*/0x8c,0xfe,0x03,0xd0,0x89,0x56,0x12,0xe8,0x62,0xfe,0x03,0xc2,0x83,0xe0,0x1f,0x50, +/*0000b480:*/0x26,0x8a,0x45,0x11,0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x04,0xc0,0xe3,0x05,0x0a, +/*0000b490:*/0xc3,0x32,0xe4,0x89,0x46,0x14,0x07,0x5d,0xc3,0x06,0x8c,0xc8,0xbf,0x9d,0xac,0x8e, +/*0000b4a0:*/0xc0,0x26,0x8b,0x05,0x0b,0xc0,0x75,0x07,0xc6,0x46,0x02,0x00,0xe9,0xa7,0x00,0x89, +/*0000b4b0:*/0x46,0x12,0xe8,0xd0,0xfd,0x8a,0x5e,0x02,0xc6,0x46,0x02,0x00,0x39,0x46,0x24,0x76, +/*0000b4c0:*/0x03,0xe9,0x92,0x00,0x88,0x5e,0x02,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x03, +/*0000b4d0:*/0x80,0xe4,0x07,0x8b,0xd0,0xe8,0xc9,0xfd,0x03,0xc2,0x88,0x46,0x06,0x80,0xe4,0x07, +/*0000b4e0:*/0x80,0x66,0x11,0x38,0x08,0x66,0x11,0x26,0x8a,0x45,0x0f,0x8a,0xe0,0x89,0x46,0x14, +/*0000b4f0:*/0xe8,0xfd,0xfd,0xc1,0xe8,0x03,0x03,0xc2,0x88,0x46,0x08,0x80,0xe4,0x03,0xc0,0xe4, +/*0000b500:*/0x06,0x08,0x66,0x11,0xe8,0xbd,0xfd,0x50,0x26,0x8a,0x45,0x11,0x8a,0xd8,0x58,0xf6, +/*0000b510:*/0xd3,0x80,0xe3,0x02,0xc0,0xe3,0x06,0x0a,0xc3,0x88,0x46,0x09,0x8b,0x46,0x0c,0x8b, +/*0000b520:*/0xd0,0xe8,0x92,0xfd,0x03,0xc2,0x89,0x46,0x0a,0x26,0x8a,0x45,0x10,0x8a,0xe0,0x89, +/*0000b530:*/0x46,0x16,0xc6,0x46,0x1b,0x00,0xe8,0xc5,0xfd,0x03,0xd0,0x89,0x56,0x0e,0xe8,0x9b, +/*0000b540:*/0xfd,0x50,0x26,0x8a,0x45,0x11,0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x04,0xc0,0xe3, +/*0000b550:*/0x05,0x0a,0xc3,0x88,0x46,0x10,0x07,0xc3,0x50,0x51,0x52,0xbb,0x04,0x02,0xe8,0x50, +/*0000b560:*/0xa2,0x24,0x80,0x8a,0xc8,0xd0,0xe9,0xbb,0x0c,0x02,0xe8,0x44,0xa2,0x24,0x80,0x0a, +/*0000b570:*/0xc8,0xba,0xcc,0x03,0xec,0x24,0x3f,0x0a,0xc1,0xba,0xc2,0x03,0xee,0x5a,0x59,0x58, +/*0000b580:*/0xc3,0x66,0x50,0x66,0x53,0x52,0x1e,0x06,0xe8,0x90,0x6d,0x74,0x03,0xe9,0xf1,0x00, +/*0000b590:*/0x8c,0xd0,0x8e,0xd8,0x8e,0xc0,0x8b,0xfd,0x8b,0x5d,0x02,0x66,0xc1,0xc3,0x10,0x8b, +/*0000b5a0:*/0x1d,0x0b,0xdb,0x75,0x03,0xe9,0xd9,0x00,0xe8,0xfa,0xa0,0xb8,0x50,0x02,0xe8,0x95, +/*0000b5b0:*/0xa2,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x00,0x02,0xe8,0x88,0xa2,0xb2,0x04, +/*0000b5c0:*/0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x06,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x04,0xb8, +/*0000b5d0:*/0xc4,0x02,0xe8,0x71,0xa2,0xb2,0x04,0xec,0x24,0x07,0x0a,0xd8,0x80,0xcb,0x02,0x66, +/*0000b5e0:*/0x8b,0xc3,0x66,0xef,0xb8,0x04,0x02,0xe8,0x5c,0xa2,0xb2,0x04,0x66,0x8b,0xc3,0x66, +/*0000b5f0:*/0xef,0x8b,0x5d,0x10,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x0e,0xb8,0x54,0x02,0xe8,0x45, +/*0000b600:*/0xa2,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x08,0x02,0xe8,0x38,0xa2,0xb2,0x04, +/*0000b610:*/0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x14,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x12,0xb8, +/*0000b620:*/0xc8,0x02,0xe8,0x21,0xa2,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x0c,0x02,0xe8, +/*0000b630:*/0x14,0xa2,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x08,0x66,0xc1,0xc3,0x10, +/*0000b640:*/0x8b,0x5d,0x0a,0xb8,0x34,0x02,0xe8,0xfd,0xa1,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef, +/*0000b650:*/0x8b,0x5d,0x16,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x18,0xb8,0x38,0x02,0xe8,0xe6,0xa1, +/*0000b660:*/0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xe8,0x5d,0xa8,0xe8,0x1c,0x00,0xe8,0x65,0xa8, +/*0000b670:*/0xe8,0x16,0x00,0xe8,0x1f,0xfb,0x74,0x03,0xe8,0x8d,0x00,0xe8,0xf8,0xf9,0xe8,0xd7, +/*0000b680:*/0xfe,0x07,0x1f,0x5a,0x66,0x5b,0x66,0x58,0xc3,0x1e,0xe8,0x5f,0xc1,0x9c,0xfa,0x8b, +/*0000b690:*/0x16,0x63,0x04,0xb0,0x11,0xee,0x42,0xec,0x24,0x7f,0xee,0x4a,0xb0,0x02,0x26,0x8a, +/*0000b6a0:*/0x65,0x0c,0xef,0xb0,0x03,0xee,0x42,0xec,0x24,0xe0,0x26,0x8a,0x65,0x0d,0x80,0xe4, +/*0000b6b0:*/0x1f,0x0a,0xc4,0x0c,0x80,0xee,0x4a,0xb0,0x05,0xee,0x42,0xec,0x24,0x7f,0x26,0x8a, +/*0000b6c0:*/0x65,0x0d,0xc0,0xe4,0x02,0x80,0xe4,0x80,0x0a,0xc4,0xee,0x4a,0xb0,0x15,0x26,0x8a, +/*0000b6d0:*/0x65,0x1a,0xef,0xb0,0x07,0xee,0x42,0xec,0x24,0xf7,0x26,0x8a,0x65,0x1b,0xc0,0xe4, +/*0000b6e0:*/0x03,0x80,0xe4,0x08,0x0a,0xc4,0xee,0x4a,0xb0,0x09,0xee,0x42,0xec,0x24,0xdf,0x26, +/*0000b6f0:*/0x8a,0x65,0x1b,0xc0,0xe4,0x04,0x80,0xe4,0x20,0x0a,0xc4,0xee,0x4a,0xb0,0x16,0x26, +/*0000b700:*/0x8a,0x65,0x1c,0xef,0x9d,0x1f,0xc3,0xc3,0x66,0x50,0x52,0xe8,0x58,0x00,0xe8,0x6b, +/*0000b710:*/0x01,0x25,0xff,0x01,0x83,0xf8,0x50,0x76,0x10,0xb0,0x09,0xe8,0xff,0xb0,0x24,0xf0, +/*0000b720:*/0x8a,0xe0,0xb0,0x09,0xe8,0x0a,0xb1,0xeb,0x39,0xbb,0xbc,0x0d,0xb8,0x00,0x07,0xe8, +/*0000b730:*/0x12,0xa0,0xb8,0x00,0x06,0xe8,0x11,0xa0,0xe8,0x6a,0x9f,0xb8,0x8c,0x02,0xe8,0x05, +/*0000b740:*/0xa1,0xb2,0x04,0x33,0xc0,0xef,0x80,0xc2,0x03,0xec,0x24,0x8f,0x0c,0x0c,0xee,0xb8, +/*0000b750:*/0x90,0x02,0xe8,0xf1,0xa0,0xb2,0x04,0xed,0x25,0x00,0xf0,0xef,0xb2,0x07,0xec,0x0c, +/*0000b760:*/0x0c,0xee,0x5a,0x66,0x58,0xc3,0x66,0x56,0x66,0x50,0x53,0x51,0x52,0x33,0xc0,0xe8, +/*0000b770:*/0x8f,0x6b,0x75,0x03,0xb8,0x00,0x06,0xbb,0xbc,0x0d,0xe8,0xc7,0x9f,0xe8,0xc9,0x9f, +/*0000b780:*/0xe8,0xf9,0x00,0x25,0xff,0x01,0x40,0x66,0x33,0xf6,0xbe,0x00,0x06,0x50,0xe8,0x18, +/*0000b790:*/0xf6,0x8b,0xc2,0x33,0xd2,0xb9,0x08,0x00,0xf7,0xf1,0x8b,0xc8,0x8b,0xd8,0xd1,0xeb, +/*0000b7a0:*/0x49,0x58,0x0b,0xf1,0x41,0x3b,0xc1,0x72,0x04,0x81,0xe6,0xff,0xfd,0x50,0xb0,0x09, +/*0000b7b0:*/0xe8,0x6a,0xb0,0x24,0xf0,0x8a,0xe0,0xb0,0x09,0xe8,0x75,0xb0,0x58,0x3b,0xc3,0x76, +/*0000b7c0:*/0x1b,0x3b,0xc1,0x74,0x17,0x50,0xb0,0x09,0xe8,0x52,0xb0,0x24,0xf0,0xe8,0x47,0xa7, +/*0000b7d0:*/0x74,0x02,0x0c,0x01,0x8a,0xe0,0xb0,0x09,0xe8,0x56,0xb0,0x58,0xba,0x00,0x10,0xf7, +/*0000b7e0:*/0xe2,0xf7,0xf1,0xd1,0xe2,0x83,0xfa,0x00,0x74,0x01,0x40,0x66,0xc1,0xc6,0x10,0x8b, +/*0000b7f0:*/0xf0,0x83,0xc6,0x04,0x3d,0x80,0x04,0x72,0x06,0x3d,0x00,0x07,0x77,0x01,0x4e,0xe8, +/*0000b800:*/0xa3,0x9e,0xb8,0x8c,0x02,0xe8,0x3e,0xa0,0xb2,0x04,0x66,0x8b,0xc6,0x66,0xef,0xe8, +/*0000b810:*/0x87,0x00,0x25,0xff,0x0f,0x40,0x66,0x33,0xf6,0xbe,0x00,0x06,0x50,0xe8,0x9a,0xf5, +/*0000b820:*/0x8b,0xca,0x49,0x58,0x66,0xc1,0xc6,0x10,0x66,0x51,0x66,0x0f,0xb7,0xc9,0x66,0xc1, +/*0000b830:*/0xe1,0x0c,0x66,0x0b,0xf1,0x66,0x59,0x41,0x3b,0xc1,0x72,0x07,0x66,0x81,0xe6,0xff, +/*0000b840:*/0xff,0xff,0xfd,0xba,0x00,0x10,0xf7,0xe2,0xf7,0xf1,0xd1,0xe2,0x3b,0xd1,0x72,0x01, +/*0000b850:*/0x40,0x66,0x25,0xff,0x0f,0x00,0x00,0x66,0x0b,0xf0,0x8b,0xc6,0x25,0xff,0x0f,0xc1, +/*0000b860:*/0xe8,0x09,0x03,0xf0,0xe8,0x3e,0x9e,0xb8,0x90,0x02,0xe8,0xd9,0x9f,0xb2,0x04,0x66, +/*0000b870:*/0x8b,0xc6,0x66,0xef,0x5a,0x59,0x5b,0x66,0x58,0x66,0x5e,0xc3,0x52,0x66,0x50,0xe8, +/*0000b880:*/0x23,0x9e,0xb8,0x00,0x02,0xe8,0x5b,0xa6,0x72,0x03,0xb8,0x50,0x02,0xe8,0xb6,0x9f, +/*0000b890:*/0xb2,0x06,0xed,0x92,0x66,0x58,0x92,0x5a,0xc3,0x52,0x66,0x50,0xe8,0x06,0x9e,0xb8, +/*0000b8a0:*/0x08,0x02,0xe8,0x3e,0xa6,0x72,0x03,0xb8,0x54,0x02,0xe8,0x99,0x9f,0xb2,0x06,0xed, +/*0000b8b0:*/0x92,0x66,0x58,0x92,0x5a,0xc3,0x00,0x7d,0x31,0x43,0x4f,0x44,0x55,0x8b,0xec,0x83, +/*0000b8c0:*/0xc4,0xfe,0xe8,0xe0,0x9d,0xb2,0x53,0xec,0x0c,0x04,0xee,0xb8,0x40,0x00,0xc1,0xe0, +/*0000b8d0:*/0x04,0xe8,0xd1,0x9d,0xb2,0xfa,0xe8,0xa9,0x9d,0xb2,0x53,0xec,0x24,0xfb,0x0c,0x02, +/*0000b8e0:*/0xee,0xe8,0x3e,0xb6,0x8b,0xe5,0x5d,0xc3,0x31,0x49,0x4e,0x49,0x3f,0x3f,0x53,0x51, +/*0000b8f0:*/0x50,0x32,0xed,0xbb,0x8f,0xac,0x2e,0x8a,0x0f,0xb8,0x08,0x4e,0xb3,0x05,0xcd,0x15, +/*0000b900:*/0x3d,0x00,0x4e,0x58,0x75,0x17,0x32,0xff,0x8b,0xcb,0x83,0xf9,0x09,0x77,0x2c,0xbb, +/*0000b910:*/0x43,0xb9,0x03,0xd9,0x2e,0x8a,0x27,0x0a,0xe4,0x74,0x20,0xeb,0x23,0xbb,0x90,0xac, +/*0000b920:*/0x2e,0x8a,0x67,0x04,0x0a,0xe4,0x74,0x13,0xc0,0xec,0x04,0x8a,0xcc,0xfe,0xc9,0x2e, +/*0000b930:*/0x8a,0x1e,0x8f,0xac,0xd2,0xeb,0xf6,0xc3,0x01,0x75,0x05,0x2e,0x8a,0x26,0x8b,0xac, +/*0000b940:*/0x59,0x5b,0xc3,0x01,0x02,0x03,0x00,0x05,0x07,0x08,0x00,0x00,0x00,0xff,0xff,0xff, +/*0000b950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000baa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000baf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000beb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x77, +/*0000c000:*/0x55,0xaa,0x0c,0xe8,0x3b,0x0f,0xcb,0x91,0xbf,0x02,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000c010:*/0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x60,0x00,0x8d,0x64,0x24,0x00, +/*0000c020:*/0x55,0x4e,0x44,0x49,0x16,0xf9,0x00,0x00,0x01,0x02,0x48,0x0b,0x00,0x08,0xb0,0x3f, +/*0000c030:*/0xd2,0x74,0x50,0x43,0x49,0x52,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,0x8d,0x49,0x00, +/*0000c040:*/0x50,0x43,0x49,0x52,0xde,0x10,0xe6,0x00,0x00,0x00,0x18,0x00,0x00,0x02,0x00,0x00, +/*0000c050:*/0x0c,0x00,0x01,0x02,0x00,0x80,0x00,0x00,0x8d,0xa4,0x24,0x00,0x00,0x00,0x00,0x90, +/*0000c060:*/0x24,0x50,0x6e,0x50,0x01,0x02,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x00,0xda,0x00, +/*0000c070:*/0xed,0x00,0x02,0x00,0x00,0xe4,0x00,0x00,0x00,0x00,0x05,0x0b,0x00,0x00,0x00,0x00, +/*0000c080:*/0x0d,0x0a,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x43,0x29,0x20, +/*0000c090:*/0x32,0x30,0x30,0x31,0x2d,0x32,0x30,0x30,0x34,0x20,0x4e,0x56,0x49,0x44,0x49,0x41, +/*0000c0a0:*/0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0d,0x0a,0x43,0x6f, +/*0000c0b0:*/0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x43,0x29,0x20,0x31,0x39,0x39,0x37, +/*0000c0c0:*/0x2d,0x32,0x30,0x30,0x30,0x20,0x49,0x6e,0x74,0x65,0x6c,0x20,0x43,0x6f,0x72,0x70, +/*0000c0d0:*/0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x0d,0x0a,0x00,0x4e,0x56,0x49,0x44,0x49,0x41, +/*0000c0e0:*/0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x00,0x4e,0x56,0x49, +/*0000c0f0:*/0x44,0x49,0x41,0x20,0x42,0x6f,0x6f,0x74,0x20,0x41,0x67,0x65,0x6e,0x74,0x20,0x32, +/*0000c100:*/0x30,0x31,0x2e,0x30,0x34,0x34,0x30,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, +/*0000c110:*/0xd0,0xc6,0xf2,0xe6,0x00,0xf0,0xb4,0x00,0xcd,0x16,0x0a,0xc0,0x74,0x02,0x32,0xe4, +/*0000c120:*/0xc3,0xb4,0x01,0xcd,0x16,0x75,0x02,0x33,0xc0,0x0a,0xc0,0x74,0x02,0x32,0xe4,0x0b, +/*0000c130:*/0xc0,0xc3,0x55,0x8b,0xec,0x66,0x60,0x8a,0x46,0x04,0xb4,0x0e,0xbb,0x07,0x00,0xb9, +/*0000c140:*/0x01,0x00,0xcd,0x10,0x66,0x61,0x90,0x5d,0xc2,0x02,0x00,0x6a,0x20,0xe8,0xe2,0xff, +/*0000c150:*/0xc3,0x6a,0x0d,0xe8,0xdc,0xff,0x6a,0x0a,0xe8,0xd7,0xff,0xc3,0x55,0x8b,0xec,0x50, +/*0000c160:*/0x53,0x1e,0xc5,0x5e,0x04,0x8a,0x07,0x3c,0x00,0x74,0x09,0x32,0xe4,0x50,0xe8,0xc1, +/*0000c170:*/0xff,0x43,0xeb,0xf1,0x1f,0x5b,0x58,0x5d,0xc2,0x04,0x00,0x55,0x8b,0xec,0x50,0x8a, +/*0000c180:*/0x46,0x04,0x24,0x0f,0x04,0x30,0x3c,0x39,0x76,0x02,0x04,0x07,0x50,0xe8,0xa2,0xff, +/*0000c190:*/0x58,0x5d,0xc2,0x02,0x00,0x55,0x8b,0xec,0x50,0x8a,0x46,0x04,0xc0,0xc0,0x04,0x50, +/*0000c1a0:*/0xe8,0xd8,0xff,0xc0,0xc0,0x04,0x50,0xe8,0xd1,0xff,0x58,0x5d,0xc2,0x02,0x00,0x55, +/*0000c1b0:*/0x8b,0xec,0x50,0x8b,0x46,0x04,0x86,0xe0,0x50,0xe8,0xd9,0xff,0x86,0xe0,0x50,0xe8, +/*0000c1c0:*/0xd3,0xff,0x58,0x5d,0xc2,0x02,0x00,0x55,0x8b,0xec,0x66,0x50,0x66,0x8b,0x46,0x04, +/*0000c1d0:*/0x66,0xc1,0xc0,0x10,0x50,0xe8,0xd7,0xff,0x66,0xc1,0xc0,0x10,0x50,0xe8,0xcf,0xff, +/*0000c1e0:*/0x66,0x58,0x5d,0xc2,0x04,0x00,0x55,0x8b,0xec,0x66,0x50,0x66,0x8b,0x46,0x04,0x66, +/*0000c1f0:*/0xc1,0xc0,0x10,0x50,0xe8,0xb8,0xff,0x6a,0x3a,0xe8,0x36,0xff,0x66,0xc1,0xc0,0x10, +/*0000c200:*/0x50,0xe8,0xab,0xff,0x66,0x58,0x5d,0xc2,0x04,0x00,0x55,0x8b,0xec,0x66,0x53,0x51, +/*0000c210:*/0x1e,0x8a,0x46,0x04,0x8e,0x5e,0x06,0x66,0x8b,0x5e,0x08,0x8b,0x4e,0x0c,0x67,0x02, +/*0000c220:*/0x03,0x66,0x43,0xe2,0xf9,0x1f,0x59,0x66,0x5b,0x32,0xe4,0x5d,0xc2,0x0a,0x00,0x55, +/*0000c230:*/0x66,0x56,0x06,0xbe,0x30,0x00,0x2b,0xe6,0x8b,0xec,0x4e,0xc6,0x02,0x00,0x75,0xfa, +/*0000c240:*/0x16,0x07,0x66,0x33,0xf6,0x8b,0xf5,0x8d,0x6c,0x08,0x66,0x33,0xc0,0x8c,0xc0,0x66, +/*0000c250:*/0xc1,0xe0,0x04,0x66,0x03,0xc6,0x89,0x46,0x02,0x66,0xc1,0xe8,0x10,0x88,0x46,0x04, +/*0000c260:*/0x88,0x66,0x07,0xc7,0x46,0x00,0x2f,0x00,0xc6,0x46,0x05,0x93,0x8d,0x6c,0x10,0x89, +/*0000c270:*/0x56,0x02,0x66,0xc1,0xca,0x10,0x88,0x56,0x04,0x88,0x76,0x07,0x66,0xc1,0xca,0x10, +/*0000c280:*/0xc7,0x46,0x00,0xff,0xff,0xc6,0x46,0x05,0x93,0x8d,0x6c,0x18,0x89,0x5e,0x02,0x66, +/*0000c290:*/0xc1,0xcb,0x10,0x88,0x5e,0x04,0x88,0x7e,0x07,0x66,0xc1,0xcb,0x10,0xc7,0x46,0x00, +/*0000c2a0:*/0xff,0xff,0xc6,0x46,0x05,0x93,0xb4,0x87,0xf8,0xcd,0x15,0x9c,0x5d,0x83,0xc4,0x30, +/*0000c2b0:*/0x55,0x9d,0x07,0x66,0x5e,0x5d,0x32,0xc0,0x80,0xfc,0x00,0x74,0x01,0xf9,0xc3,0x01, +/*0000c2c0:*/0x80,0x81,0x11,0x40,0x00,0x55,0x00,0xd2,0x74,0xb0,0x3f,0xd2,0x74,0xa8,0x86,0x40, +/*0000c2d0:*/0x00,0x83,0x08,0xfe,0x5d,0x30,0x39,0xfe,0x5d,0xb8,0x30,0x00,0xc3,0xc3,0xc3,0xc3, +/*0000c2e0:*/0xe8,0xfa,0xff,0xe8,0x6b,0xfe,0x0e,0x68,0xed,0x00,0xe8,0x6f,0xfe,0x0e,0x68,0x80, +/*0000c2f0:*/0x00,0xe8,0x68,0xfe,0x53,0x51,0x66,0x52,0x57,0x56,0x1e,0x06,0x0f,0xa0,0x0f,0xa8, +/*0000c300:*/0x66,0x2e,0x83,0x3e,0xcd,0x02,0x00,0x74,0x0b,0x2e,0xf7,0x06,0xbf,0x02,0x40,0x00, +/*0000c310:*/0x0f,0x84,0xeb,0x00,0xba,0x00,0xc0,0x8e,0xda,0x81,0x3e,0x00,0x00,0x55,0xaa,0x0f, +/*0000c320:*/0x84,0x86,0x00,0x81,0xc2,0x80,0x00,0x72,0x06,0x81,0xfa,0x00,0xf0,0x72,0xe8,0x66, +/*0000c330:*/0x2e,0x83,0x3e,0xcd,0x02,0x00,0x0f,0x85,0xc5,0x00,0x0e,0x68,0x5e,0x03,0xe8,0x1b, +/*0000c340:*/0xfe,0x53,0x51,0x1e,0xbb,0x40,0x00,0x8e,0xdb,0xb9,0x48,0x00,0x8a,0x1e,0x6c,0x00, +/*0000c350:*/0x38,0xdf,0x74,0xf8,0x8a,0xfb,0xe2,0xf4,0x59,0x5b,0x1f,0xe9,0x3a,0x01,0x0d,0x0a, +/*0000c360:*/0x50,0x58,0x45,0x2d,0x45,0x43,0x31,0x3a,0x20,0x42,0x61,0x73,0x65,0x2d,0x63,0x6f, +/*0000c370:*/0x64,0x65,0x20,0x52,0x4f,0x4d,0x20,0x49,0x44,0x20,0x73,0x74,0x72,0x75,0x63,0x74, +/*0000c380:*/0x75,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e, +/*0000c390:*/0x64,0x2e,0x00,0x81,0xc3,0xff,0x07,0x81,0xe3,0x00,0xf8,0x81,0xeb,0x00,0x08,0xc1, +/*0000c3a0:*/0xeb,0x04,0x03,0xd3,0x72,0x89,0xe9,0x7a,0xff,0x8a,0x1e,0x02,0x00,0x80,0xfb,0x00, +/*0000c3b0:*/0x0f,0x84,0x6f,0xff,0xc1,0xe3,0x09,0x0f,0x82,0x68,0xff,0x53,0x66,0x6a,0x00,0x1e, +/*0000c3c0:*/0x6a,0x00,0xe8,0x45,0xfe,0x3c,0x00,0x74,0x03,0xe9,0x57,0xff,0x8b,0x3e,0x16,0x00, +/*0000c3d0:*/0x83,0xff,0x00,0x74,0xbe,0x3b,0xfb,0x73,0xba,0x66,0x81,0x3d,0x24,0x42,0x43,0x24, +/*0000c3e0:*/0x75,0xb1,0x0f,0xb6,0x45,0x04,0x83,0xf8,0x06,0x72,0xa8,0x50,0x6a,0x00,0x57,0x1e, +/*0000c3f0:*/0x6a,0x00,0xe8,0x15,0xfe,0x3c,0x00,0x74,0x02,0xeb,0x98,0x8c,0xdb,0x8e,0xc3,0x66, +/*0000c400:*/0x2e,0x83,0x3e,0xcd,0x02,0x00,0x74,0x1e,0x2e,0xf7,0x06,0xbf,0x02,0x40,0x00,0x0f, +/*0000c410:*/0x84,0xe5,0x00,0x83,0xff,0xf0,0x0f,0x83,0xde,0x00,0x66,0x26,0x81,0x3d,0x24,0x42, +/*0000c420:*/0x43,0x24,0x0f,0x85,0xd2,0x00,0x0e,0x68,0x20,0x00,0x2e,0xff,0x36,0x0e,0x01,0x2e, +/*0000c430:*/0xff,0x36,0x10,0x01,0x2e,0xff,0x36,0x0c,0x01,0x2e,0xff,0x36,0x0a,0x01,0x2e,0xff, +/*0000c440:*/0x36,0x08,0x01,0x6a,0x00,0x8b,0xc4,0x16,0x50,0x0e,0x68,0x53,0x04,0x06,0x26,0xff, +/*0000c450:*/0x75,0x0a,0xcb,0x83,0xc4,0x04,0x5a,0x83,0xc4,0x0e,0x83,0xf8,0x00,0x74,0x39,0x0e, +/*0000c460:*/0x68,0x86,0x04,0xe8,0xf6,0xfc,0x52,0xe8,0x45,0xfd,0x53,0x51,0x1e,0xbb,0x40,0x00, +/*0000c470:*/0x8e,0xdb,0xb9,0x48,0x00,0x8a,0x1e,0x6c,0x00,0x38,0xdf,0x74,0xf8,0x8a,0xfb,0xe2, +/*0000c480:*/0xf4,0x59,0x5b,0x1f,0xeb,0x12,0x0d,0x0a,0x42,0x43,0x5f,0x4c,0x6f,0x61,0x64,0x65, +/*0000c490:*/0x72,0x28,0x29,0x20,0x3d,0x3d,0x20,0x00,0xb4,0x03,0xb7,0x00,0xcd,0x10,0x72,0x05, +/*0000c4a0:*/0x80,0xfa,0x00,0x74,0x03,0xe8,0xa9,0xfc,0x0e,0x68,0xb1,0x04,0xe8,0xad,0xfc,0xeb, +/*0000c4b0:*/0x26,0x50,0x58,0x45,0x2d,0x4d,0x30,0x46,0x3a,0x20,0x45,0x78,0x69,0x74,0x69,0x6e, +/*0000c4c0:*/0x67,0x20,0x4e,0x56,0x49,0x44,0x49,0x41,0x20,0x42,0x6f,0x6f,0x74,0x20,0x41,0x67, +/*0000c4d0:*/0x65,0x6e,0x74,0x2e,0x0d,0x0a,0x00,0xbb,0x40,0x00,0x8e,0xdb,0xb9,0x36,0x00,0x8a, +/*0000c4e0:*/0x1e,0x6c,0x00,0x38,0xdf,0x74,0xf8,0x8a,0xfb,0xe2,0xf4,0x0f,0xa9,0x0f,0xa1,0x07, +/*0000c4f0:*/0x1f,0x5e,0x5f,0x66,0x5a,0x59,0x5b,0xc3,0x66,0x2e,0x0f,0xb7,0x16,0x2c,0x00,0x66, +/*0000c500:*/0x2e,0x0f,0xb7,0x06,0x2e,0x00,0x66,0x03,0xd0,0x66,0x2e,0x0f,0xb7,0x06,0x30,0x00, +/*0000c510:*/0x66,0x03,0xd0,0x66,0x2e,0x0f,0xb7,0x06,0xd5,0x02,0x66,0x03,0xd0,0x66,0x2e,0x0f, +/*0000c520:*/0xb7,0x06,0xd7,0x02,0x66,0x03,0xd0,0x66,0x81,0xc2,0xff,0x03,0x00,0x00,0x66,0xc1, +/*0000c530:*/0xea,0x0a,0xb8,0x40,0x00,0x8e,0xc0,0x26,0x8b,0x36,0x13,0x00,0x2b,0xf2,0x26,0x87, +/*0000c540:*/0x36,0x13,0x00,0x1e,0x66,0x52,0x53,0x66,0x50,0x26,0xa1,0x13,0x00,0xc1,0xe0,0x06, +/*0000c550:*/0x8e,0xd8,0x66,0xc1,0xe2,0x08,0x66,0x33,0xc0,0x33,0xdb,0x66,0x89,0x07,0x66,0x4a, +/*0000c560:*/0x74,0x11,0x83,0xc3,0x04,0x75,0xf4,0x8c,0xdb,0x81,0xc3,0x00,0x10,0x8e,0xdb,0x33, +/*0000c570:*/0xdb,0xeb,0xe8,0x66,0x58,0x5b,0x66,0x5a,0x1f,0x8c,0xd0,0x66,0xc1,0xe0,0x10,0x8b, +/*0000c580:*/0xc4,0x66,0xc1,0xe2,0x10,0x2e,0x8b,0x16,0x2c,0x00,0xfa,0xbc,0x40,0x00,0x8e,0xd4, +/*0000c590:*/0x36,0x8b,0x26,0x13,0x00,0xc1,0xe4,0x06,0x8e,0xd4,0x8b,0xe2,0xfb,0x66,0xc1,0xea, +/*0000c5a0:*/0x10,0x66,0x50,0x66,0x53,0x66,0x57,0x66,0x55,0x6a,0x00,0x6a,0x00,0x66,0x6a,0x00, +/*0000c5b0:*/0x66,0x6a,0x00,0x52,0x56,0x8b,0xec,0xba,0x40,0x00,0x8e,0xc2,0x26,0x8b,0x16,0x13, +/*0000c5c0:*/0x00,0xc1,0xe2,0x06,0x83,0xec,0x18,0x8b,0xfc,0x2e,0xa1,0x08,0x01,0x36,0x89,0x45, +/*0000c5d0:*/0x02,0x2e,0xa1,0x0a,0x01,0x36,0x89,0x45,0x04,0x2e,0xa1,0x0c,0x01,0x36,0x89,0x45, +/*0000c5e0:*/0x06,0x2e,0xa1,0x10,0x01,0x36,0x89,0x45,0x08,0x2e,0xa1,0x0e,0x01,0x36,0x89,0x45, +/*0000c5f0:*/0x0a,0x66,0x2e,0x0f,0xb7,0x06,0x2c,0x00,0x66,0x83,0xc0,0x0f,0x66,0xc1,0xe8,0x04, +/*0000c600:*/0x03,0xd0,0x89,0x56,0x0c,0x66,0x2e,0x0f,0xb7,0x06,0xd5,0x02,0x66,0x83,0xc0,0x0f, +/*0000c610:*/0x66,0xc1,0xe8,0x04,0x03,0xd0,0x89,0x56,0x0e,0x66,0x2e,0x0f,0xb7,0x06,0xd7,0x02, +/*0000c620:*/0x66,0x83,0xc0,0x0f,0x66,0xc1,0xe8,0x04,0x03,0xd0,0x36,0x89,0x55,0x0c,0x66,0x2e, +/*0000c630:*/0x0f,0xb7,0x06,0x2e,0x00,0x66,0x83,0xc0,0x0f,0x66,0xc1,0xe8,0x04,0x03,0xd0,0x36, +/*0000c640:*/0x89,0x55,0x0e,0x16,0x57,0x0e,0xe8,0xff,0x04,0x83,0xc4,0x04,0x66,0x36,0x8b,0x55, +/*0000c650:*/0x10,0x66,0x89,0x56,0x08,0x66,0x36,0x8b,0x55,0x14,0x66,0x89,0x56,0x04,0x5a,0x83, +/*0000c660:*/0xc4,0x16,0x83,0xf8,0x00,0x0f,0x84,0x0e,0x01,0xb8,0x96,0x06,0x83,0xfa,0x20,0x74, +/*0000c670:*/0x1d,0xb8,0xc2,0x06,0x81,0xfa,0xc6,0x00,0x74,0x14,0xb8,0xeb,0x06,0x81,0xfa,0xc8, +/*0000c680:*/0x00,0x74,0x0b,0xb8,0x30,0x07,0x81,0xfa,0xc9,0x00,0x0f,0x85,0x5e,0x03,0x0e,0x50, +/*0000c690:*/0xe8,0xc9,0xfa,0xe9,0x56,0x03,0x0d,0x0a,0x50,0x58,0x45,0x2d,0x45,0x32,0x30,0x3a, +/*0000c6a0:*/0x20,0x42,0x49,0x4f,0x53,0x20,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0x20,0x6d, +/*0000c6b0:*/0x65,0x6d,0x6f,0x72,0x79,0x20,0x63,0x6f,0x70,0x79,0x20,0x65,0x72,0x72,0x6f,0x72, +/*0000c6c0:*/0x2e,0x00,0x0d,0x0a,0x50,0x58,0x45,0x2d,0x45,0x43,0x36,0x3a,0x20,0x55,0x4e,0x44, +/*0000c6d0:*/0x49,0x20,0x64,0x72,0x69,0x76,0x65,0x72,0x20,0x69,0x6d,0x61,0x67,0x65,0x20,0x69, +/*0000c6e0:*/0x73,0x20,0x69,0x6e,0x76,0x61,0x6c,0x69,0x64,0x2e,0x00,0x0d,0x0a,0x50,0x58,0x45, +/*0000c6f0:*/0x2d,0x45,0x43,0x38,0x3a,0x20,0x21,0x50,0x58,0x45,0x20,0x73,0x74,0x72,0x75,0x63, +/*0000c700:*/0x74,0x75,0x72,0x65,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75, +/*0000c710:*/0x6e,0x64,0x20,0x69,0x6e,0x20,0x55,0x4e,0x44,0x49,0x20,0x64,0x72,0x69,0x76,0x65, +/*0000c720:*/0x72,0x20,0x63,0x6f,0x64,0x65,0x20,0x73,0x65,0x67,0x6d,0x65,0x6e,0x74,0x2e,0x00, +/*0000c730:*/0x0d,0x0a,0x50,0x58,0x45,0x2d,0x45,0x43,0x39,0x3a,0x20,0x50,0x58,0x45,0x4e,0x56, +/*0000c740:*/0x2b,0x20,0x73,0x74,0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x77,0x61,0x73,0x20, +/*0000c750:*/0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x20,0x69,0x6e,0x20,0x55,0x4e,0x44, +/*0000c760:*/0x49,0x20,0x64,0x72,0x69,0x76,0x65,0x72,0x20,0x63,0x6f,0x64,0x65,0x20,0x73,0x65, +/*0000c770:*/0x67,0x6d,0x65,0x6e,0x74,0x2e,0x00,0x2e,0x83,0x3e,0xd3,0x02,0x00,0x75,0x35,0x0e, +/*0000c780:*/0x68,0x89,0x07,0xe8,0xd6,0xf9,0xe9,0x63,0x02,0x0d,0x0a,0x50,0x58,0x45,0x2d,0x45, +/*0000c790:*/0x43,0x33,0x3a,0x20,0x42,0x43,0x20,0x52,0x4f,0x4d,0x20,0x49,0x44,0x20,0x73,0x74, +/*0000c7a0:*/0x72,0x75,0x63,0x74,0x75,0x72,0x65,0x20,0x69,0x73,0x20,0x69,0x6e,0x76,0x61,0x6c, +/*0000c7b0:*/0x69,0x64,0x2e,0x00,0x66,0x2e,0x8b,0x16,0xcd,0x02,0x66,0x2e,0x0f,0xb7,0x1e,0xd1, +/*0000c7c0:*/0x02,0x66,0x03,0xd3,0x66,0x0f,0xb7,0x5e,0x0e,0x66,0xc1,0xe3,0x04,0x2e,0x8b,0x0e, +/*0000c7d0:*/0xd3,0x02,0xd1,0xe9,0x83,0xd1,0x00,0xe8,0x55,0xfa,0x73,0x44,0x0e,0x68,0xec,0x07, +/*0000c7e0:*/0xe8,0x79,0xf9,0x8a,0xc4,0x50,0xe8,0xac,0xf9,0xe9,0x00,0x02,0x0d,0x0a,0x50,0x58, +/*0000c7f0:*/0x45,0x2d,0x45,0x32,0x30,0x3a,0x20,0x42,0x49,0x4f,0x53,0x20,0x65,0x78,0x74,0x65, +/*0000c800:*/0x6e,0x64,0x65,0x64,0x20,0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x63,0x6f,0x70,0x79, +/*0000c810:*/0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x20,0x20,0x41,0x48,0x20,0x3d,0x3d,0x20,0x00, +/*0000c820:*/0x2e,0x8b,0x0e,0xd1,0x02,0xe3,0x1e,0x66,0x2e,0x8b,0x16,0xcd,0x02,0x66,0x0f,0xb7, +/*0000c830:*/0x5e,0x0c,0x66,0xc1,0xe3,0x04,0x2e,0x8b,0x0e,0xd1,0x02,0xd1,0xe9,0x83,0xd1,0x00, +/*0000c840:*/0xe8,0xec,0xf9,0x72,0x97,0xc4,0x76,0x08,0x66,0x26,0xc7,0x44,0x0c,0x00,0x00,0x00, +/*0000c850:*/0x00,0x66,0x0f,0xb7,0x46,0x0c,0x26,0x89,0x44,0x40,0x66,0xc1,0xe0,0x04,0x66,0x26, +/*0000c860:*/0x89,0x44,0x42,0x66,0x0f,0xb7,0x46,0x0e,0x26,0x89,0x44,0x48,0x26,0x89,0x44,0x50, +/*0000c870:*/0x66,0xc1,0xe0,0x04,0x66,0x26,0x89,0x44,0x4a,0x66,0x26,0x89,0x44,0x52,0x26,0x0f, +/*0000c880:*/0xb6,0x44,0x04,0x50,0x6a,0x00,0x56,0x06,0x6a,0x00,0xe8,0x7d,0xf9,0x26,0x28,0x44, +/*0000c890:*/0x05,0xc4,0x76,0x04,0x8b,0x46,0x0e,0x26,0x89,0x44,0x18,0x8b,0x46,0x0c,0x26,0x89, +/*0000c8a0:*/0x44,0x1c,0x26,0x0f,0xb6,0x44,0x08,0x50,0x6a,0x00,0x56,0x06,0x6a,0x00,0xe8,0x59, +/*0000c8b0:*/0xf9,0x26,0x28,0x44,0x09,0x83,0xec,0x0c,0x8b,0xfc,0x2e,0xa1,0x08,0x01,0x36,0x89, +/*0000c8c0:*/0x45,0x02,0x2e,0xa1,0x0a,0x01,0x36,0x89,0x45,0x04,0x2e,0xa1,0x0c,0x01,0x36,0x89, +/*0000c8d0:*/0x45,0x06,0x2e,0xa1,0x10,0x01,0x36,0x89,0x45,0x08,0x2e,0xa1,0x0e,0x01,0x36,0x89, +/*0000c8e0:*/0x45,0x0a,0x16,0x57,0x6a,0x00,0xc4,0x76,0x08,0x26,0xff,0x5c,0x10,0x83,0xc4,0x06, +/*0000c8f0:*/0x5a,0x83,0xc4,0x0a,0x83,0xf8,0x00,0x0f,0x85,0xf1,0x00,0x83,0xec,0x02,0x8b,0xfc, +/*0000c900:*/0x16,0x57,0x6a,0x75,0xc4,0x76,0x08,0x26,0xff,0x5c,0x10,0x83,0xc4,0x06,0x5a,0x83, +/*0000c910:*/0xc4,0x00,0x83,0xf8,0x00,0x74,0x24,0xba,0x00,0x00,0xeb,0x38,0x83,0xec,0x02,0x8b, +/*0000c920:*/0xfc,0x16,0x57,0x6a,0x76,0xc4,0x76,0x08,0x26,0xff,0x5c,0x10,0x83,0xc4,0x06,0x5a, +/*0000c930:*/0x83,0xc4,0x00,0x83,0xf8,0x00,0x74,0x03,0xba,0x00,0x00,0x83,0xfa,0x05,0x75,0x14, +/*0000c940:*/0x1e,0x6a,0x40,0x1f,0xa1,0x13,0x00,0x48,0xa3,0x13,0x00,0x1f,0x89,0x46,0x00,0xc7, +/*0000c950:*/0x46,0x02,0x00,0x00,0x52,0x83,0xec,0x02,0x8b,0xfc,0x16,0x57,0x6a,0x15,0xc4,0x76, +/*0000c960:*/0x08,0x26,0xff,0x5c,0x10,0x83,0xc4,0x06,0x5a,0x83,0xc4,0x00,0x83,0xf8,0x00,0x74, +/*0000c970:*/0x05,0x83,0xc4,0x02,0xeb,0x76,0x58,0x83,0xf8,0x04,0x74,0x0a,0x83,0xf8,0x00,0x75, +/*0000c980:*/0x1c,0x83,0xfa,0x00,0x74,0x66,0x53,0x1e,0xc5,0x5e,0x04,0x8b,0x47,0x20,0xc1,0xe8, +/*0000c990:*/0x06,0x48,0x87,0x46,0x00,0x2b,0x46,0x00,0x29,0x46,0x02,0x1f,0x5b,0x06,0x66,0x53, +/*0000c9a0:*/0x56,0x57,0x1e,0x8b,0x46,0x00,0xc1,0xe0,0x06,0x8e,0xc0,0xbf,0x00,0x00,0x0e,0x1f, +/*0000c9b0:*/0x8d,0x36,0x4d,0x0a,0xfc,0xf3,0xa4,0x8c,0xc3,0x66,0x0f,0xb7,0xdb,0x66,0xc1,0xe3, +/*0000c9c0:*/0x04,0x66,0x26,0x89,0x1e,0x10,0x00,0x6a,0x00,0x1f,0x66,0x8b,0x1e,0x54,0x00,0x66, +/*0000c9d0:*/0x26,0x89,0x1e,0x0c,0x00,0x8c,0xc3,0x66,0xc1,0xe3,0x10,0xbb,0x00,0x00,0x9c,0xfa, +/*0000c9e0:*/0x66,0x89,0x1e,0x54,0x00,0x9d,0x1f,0x5f,0x5e,0x66,0x5b,0x07,0x5e,0x5a,0x83,0xc4, +/*0000c9f0:*/0x0c,0x66,0x5d,0x66,0x5f,0x66,0x5b,0x66,0x58,0xfa,0x8b,0xe0,0x66,0xc1,0xe8,0x10, +/*0000ca00:*/0x8e,0xd0,0xfb,0x83,0xfa,0x00,0x74,0x38,0xb8,0x40,0x00,0x8e,0xc0,0x26,0xa1,0x13, +/*0000ca10:*/0x00,0xc1,0xe0,0x06,0x8e,0xc0,0x66,0xb8,0x00,0x00,0x00,0x00,0xbb,0x00,0x00,0xb9, +/*0000ca20:*/0x00,0x04,0x66,0x26,0x89,0x07,0x83,0xc3,0x04,0x83,0xe9,0x04,0x75,0xf4,0x4a,0x74, +/*0000ca30:*/0x0f,0x83,0xfb,0x00,0x75,0xe9,0x8c,0xc1,0x81,0xc1,0x00,0x10,0x8e,0xc1,0xeb,0xdf, +/*0000ca40:*/0xb8,0x40,0x00,0x8e,0xc0,0x26,0x89,0x36,0x13,0x00,0xe9,0x4b,0xfa,0x9c,0x3d,0x20, +/*0000ca50:*/0xe8,0x74,0x0e,0x9d,0x2e,0xff,0x2e,0x0c,0x00,0xef,0xbe,0xad,0xde,0x00,0x00,0x00, +/*0000ca60:*/0x00,0x2e,0xff,0x1e,0x0c,0x00,0x73,0x09,0x55,0x8b,0xec,0x83,0x4e,0x06,0x01,0x5d, +/*0000ca70:*/0xcf,0x26,0x80,0x7d,0x10,0x01,0x74,0x09,0x26,0x80,0x7d,0x10,0x02,0x74,0x2b,0xeb, +/*0000ca80:*/0x7b,0x66,0x26,0x83,0x7d,0x04,0x00,0x75,0x73,0x66,0x50,0x66,0x2e,0xa1,0x10,0x00, +/*0000ca90:*/0x66,0x26,0x39,0x05,0x77,0x10,0x66,0x26,0x2b,0x05,0x66,0x26,0x3b,0x45,0x08,0x73, +/*0000caa0:*/0x05,0x66,0x26,0x89,0x45,0x08,0x66,0x58,0xeb,0x52,0x66,0x26,0x83,0x7d,0x04,0x00, +/*0000cab0:*/0x77,0x4a,0x66,0x26,0x81,0x3d,0x00,0x00,0x0a,0x00,0x73,0x40,0x66,0x50,0x66,0x2e, +/*0000cac0:*/0xa1,0x10,0x00,0x66,0x26,0x39,0x05,0x72,0x1b,0x66,0x50,0x66,0x26,0x8b,0x05,0x66, +/*0000cad0:*/0x2e,0x2b,0x06,0x10,0x00,0x66,0x26,0x01,0x45,0x08,0x66,0x58,0x66,0x26,0x89,0x05, +/*0000cae0:*/0x66,0x58,0xeb,0x18,0x66,0x26,0x2b,0x05,0x66,0x26,0x3b,0x45,0x08,0x75,0x0b,0x66, +/*0000caf0:*/0x05,0x00,0x00,0x01,0x00,0x66,0x26,0x89,0x45,0x08,0x66,0x58,0x55,0x8b,0xec,0x83, +/*0000cb00:*/0x66,0x06,0xfe,0x5d,0xcf,0xe8,0xd8,0xf7,0x33,0xc0,0xcb,0xe8,0xd2,0xf7,0x33,0xc0, +/*0000cb10:*/0xcf,0xe8,0xcc,0xf7,0x33,0xc0,0x2e,0xff,0x2e,0x12,0x01,0x66,0x50,0x2e,0xf7,0x06, +/*0000cb20:*/0xbf,0x02,0x00,0x80,0x74,0x03,0x66,0x58,0xc3,0x2e,0xf7,0x06,0xbf,0x02,0x01,0x00, +/*0000cb30:*/0x74,0x0e,0x66,0x33,0xc0,0x8c,0xc8,0x66,0xc1,0xe0,0x04,0x66,0x03,0xd0,0xeb,0xe6, +/*0000cb40:*/0xe8,0xfa,0x03,0x66,0x03,0xd0,0xeb,0xde,0x55,0x8b,0xec,0x66,0x53,0x51,0x66,0x52, +/*0000cb50:*/0x57,0x1e,0x06,0xc5,0x5e,0x06,0xc7,0x07,0x00,0x00,0x8e,0x47,0x0c,0x33,0xff,0x33, +/*0000cb60:*/0xc0,0x2e,0x8b,0x0e,0x2e,0x00,0xd1,0xe9,0xfc,0xf3,0xab,0x8e,0x47,0x0e,0x33,0xff, +/*0000cb70:*/0x2e,0x8b,0x0e,0x30,0x00,0xd1,0xe9,0xf3,0xab,0x2e,0x8b,0x0e,0x2e,0x00,0xe3,0x31, +/*0000cb80:*/0x66,0x2e,0x8b,0x16,0xc1,0x02,0xc5,0x5e,0x06,0xe8,0x8f,0xff,0xc5,0x5e,0x06,0x66, +/*0000cb90:*/0x0f,0xb7,0x5f,0x0c,0x66,0xc1,0xe3,0x04,0x2e,0x8b,0x0e,0xc5,0x02,0xd1,0xe9,0x83, +/*0000cba0:*/0xd1,0x00,0xe8,0x8a,0xf6,0x73,0x0a,0xc5,0x5e,0x06,0xc7,0x07,0x20,0x00,0xe9,0x7b, +/*0000cbb0:*/0x01,0x2e,0x83,0x3e,0x30,0x00,0x00,0x75,0x09,0xc5,0x5e,0x06,0xc7,0x07,0xc5,0x00, +/*0000cbc0:*/0xeb,0xec,0x66,0x2e,0x8b,0x16,0xc1,0x02,0xc5,0x5e,0x06,0xe8,0x4d,0xff,0x66,0x2e, +/*0000cbd0:*/0x0f,0xb7,0x1e,0xc5,0x02,0x66,0x03,0xd3,0xc5,0x5e,0x06,0x66,0x0f,0xb7,0x5f,0x0e, +/*0000cbe0:*/0x66,0xc1,0xe3,0x04,0x2e,0x8b,0x0e,0xc7,0x02,0xd1,0xe9,0x83,0xd1,0x00,0xe8,0x3e, +/*0000cbf0:*/0xf6,0x73,0x09,0xc5,0x5e,0x06,0xc7,0x07,0x20,0x00,0xeb,0xb2,0xc5,0x5e,0x06,0x8e, +/*0000cc00:*/0x47,0x0e,0xbe,0x00,0x00,0x66,0x26,0x81,0x3c,0x21,0x50,0x58,0x45,0x74,0x14,0x83, +/*0000cc10:*/0xc6,0x10,0x2e,0x3b,0x36,0x30,0x00,0x72,0xec,0xc5,0x5e,0x06,0xc7,0x07,0xc8,0x00, +/*0000cc20:*/0xe9,0x09,0x01,0x26,0x0f,0xb6,0x44,0x04,0x83,0xf8,0x58,0x72,0xd8,0x50,0x6a,0x00, +/*0000cc30:*/0x56,0x06,0x6a,0x00,0xe8,0xd3,0xf5,0x3c,0x00,0x75,0xca,0xc5,0x5e,0x06,0x89,0x77, +/*0000cc40:*/0x10,0x8c,0x47,0x12,0x26,0x8c,0x44,0x12,0x26,0x8c,0x44,0x16,0x26,0xc7,0x44,0x08, +/*0000cc50:*/0x20,0x00,0x26,0x8c,0x4c,0x0a,0x66,0x2e,0x0f,0xb7,0x06,0x2c,0x00,0x26,0x89,0x44, +/*0000cc60:*/0x26,0x8c,0xd0,0x26,0x89,0x44,0x20,0x66,0xc1,0xe0,0x04,0x66,0x26,0x89,0x44,0x22, +/*0000cc70:*/0x66,0x0f,0xb7,0x47,0x0c,0x26,0x89,0x44,0x28,0x66,0xc1,0xe0,0x04,0x66,0x26,0x89, +/*0000cc80:*/0x44,0x2a,0x66,0x0f,0xb7,0x47,0x0e,0x26,0x89,0x44,0x30,0x26,0x89,0x44,0x38,0x66, +/*0000cc90:*/0xc1,0xe0,0x04,0x66,0x26,0x89,0x44,0x32,0x66,0x26,0x89,0x44,0x3a,0x26,0x0f,0xb6, +/*0000cca0:*/0x44,0x04,0x50,0x6a,0x00,0x56,0x06,0x6a,0x00,0xe8,0x5e,0xf5,0x26,0x28,0x44,0x05, +/*0000ccb0:*/0xc5,0x5e,0x06,0x8e,0x47,0x0e,0xbe,0x00,0x00,0x66,0x26,0x81,0x3c,0x50,0x58,0x45, +/*0000ccc0:*/0x4e,0x74,0x13,0x83,0xc6,0x10,0x2e,0x3b,0x36,0x30,0x00,0x72,0xec,0xc5,0x5e,0x06, +/*0000ccd0:*/0xc7,0x07,0xc9,0x00,0xeb,0x56,0x26,0x0f,0xb6,0x44,0x08,0x83,0xf8,0x2c,0x72,0xd9, +/*0000cce0:*/0x50,0x6a,0x00,0x56,0x06,0x6a,0x00,0xe8,0x20,0xf5,0x3c,0x00,0x75,0xcb,0xc5,0x5e, +/*0000ccf0:*/0x06,0x89,0x77,0x14,0x8c,0x47,0x16,0x26,0x8c,0x44,0x0c,0x26,0x8c,0x44,0x2a,0x2e, +/*0000cd00:*/0xa1,0x2c,0x00,0x26,0x89,0x44,0x16,0x26,0x8c,0x54,0x14,0x8b,0x47,0x0c,0x26,0x89, +/*0000cd10:*/0x44,0x20,0x8b,0x47,0x0e,0x26,0x89,0x44,0x24,0x26,0x0f,0xb6,0x44,0x08,0x50,0x6a, +/*0000cd20:*/0x00,0x56,0x06,0x6a,0x00,0xe8,0xe2,0xf4,0x26,0x28,0x44,0x09,0xb8,0x00,0x00,0xc5, +/*0000cd30:*/0x5e,0x06,0x83,0x3f,0x00,0x74,0x03,0xb8,0x01,0x00,0x07,0x1f,0x5f,0x66,0x5a,0x59, +/*0000cd40:*/0x66,0x5b,0x5d,0xcb,0x72,0x08,0x2e,0x80,0x3e,0x02,0x00,0x00,0x75,0x24,0x1e,0xbb, +/*0000cd50:*/0x40,0x00,0x8e,0xdb,0xb9,0x48,0x00,0x8a,0x1e,0x6c,0x00,0x38,0xdf,0x74,0xf8,0x8a, +/*0000cd60:*/0xfb,0xe2,0xf4,0x1f,0x33,0xdb,0x2e,0x88,0x1e,0x02,0x00,0x2e,0x89,0x1e,0x50,0x00, +/*0000cd70:*/0xeb,0x23,0x2e,0x81,0x0e,0xbf,0x02,0x00,0x80,0x2e,0x0f,0xb6,0x06,0x02,0x00,0x2e, +/*0000cd80:*/0xa3,0x50,0x00,0xc1,0xe0,0x09,0x50,0x66,0x6a,0x00,0x0e,0x6a,0x00,0xe8,0x7a,0xf4, +/*0000cd90:*/0x2e,0x28,0x06,0x07,0x00,0x53,0x58,0x66,0x25,0xff,0xff,0x00,0x00,0x66,0x5a,0x66, +/*0000cda0:*/0x59,0x66,0x5b,0x66,0xc1,0xe0,0x10,0x58,0x83,0xf8,0x00,0x74,0x03,0x8b,0xe0,0x5d, +/*0000cdb0:*/0x66,0xc1,0xe8,0x10,0xc3,0x66,0x50,0x66,0x53,0x66,0x51,0x1e,0xbb,0x00,0xf0,0x8e, +/*0000cdc0:*/0xdb,0xbb,0x00,0x00,0x66,0x81,0x3f,0x5f,0x53,0x4d,0x5f,0x74,0x08,0x83,0xc3,0x10, +/*0000cdd0:*/0x73,0xf2,0xe9,0x97,0x00,0x0f,0xb6,0x4f,0x05,0x83,0xf9,0x06,0x76,0xef,0x51,0x6a, +/*0000cde0:*/0x00,0x53,0x1e,0x6a,0x00,0xe8,0x22,0xf4,0x3c,0x00,0x74,0x11,0x41,0x51,0x6a,0x00, +/*0000cdf0:*/0x53,0x1e,0x6a,0x00,0xe8,0x13,0xf4,0x3c,0x00,0x74,0x02,0xeb,0xd0,0x80,0x7f,0x06, +/*0000ce00:*/0x02,0x77,0x08,0x72,0x67,0x80,0x7f,0x07,0x03,0x72,0x61,0x66,0x8b,0x47,0x18,0x66, +/*0000ce10:*/0x83,0xf8,0x00,0x74,0x57,0x8b,0x4f,0x1c,0xbb,0x00,0x00,0x8e,0xdb,0x51,0xe8,0xb8, +/*0000ce20:*/0x00,0x66,0x83,0xf9,0x00,0x59,0x75,0x18,0x66,0x3d,0x00,0x00,0x10,0x00,0x77,0x0e, +/*0000ce30:*/0x50,0x66,0xc1,0xe8,0x04,0x8e,0xd8,0x58,0x66,0x83,0xe0,0x0f,0xeb,0x02,0xeb,0x2c, +/*0000ce40:*/0x67,0x80,0x38,0x00,0x74,0x1c,0x49,0x74,0x23,0x67,0x66,0x0f,0xb6,0x58,0x01,0x66, +/*0000ce50:*/0x03,0xc3,0x67,0x83,0x38,0x00,0x74,0x04,0x66,0x40,0xeb,0xf6,0x66,0x83,0xc0,0x02, +/*0000ce60:*/0xeb,0xde,0x67,0xf6,0x40,0x13,0x01,0x74,0x67,0xf8,0xeb,0x65,0xb8,0xff,0xff,0x66, +/*0000ce70:*/0x26,0x81,0x3d,0x24,0x50,0x6e,0x50,0x75,0x57,0x33,0xdb,0x32,0xc0,0x26,0x02,0x01, +/*0000ce80:*/0x43,0x26,0x3a,0x5d,0x05,0x75,0xf6,0x0a,0xc0,0xb8,0xfe,0xff,0x75,0x42,0xb8,0xfd, +/*0000ce90:*/0xff,0x66,0x26,0x83,0x7d,0x0d,0x00,0x74,0x37,0x6a,0x00,0x8b,0xdc,0x26,0xff,0x75, +/*0000cea0:*/0x1b,0x16,0x53,0x6a,0x60,0x26,0xff,0x5d,0x0d,0x83,0xc4,0x08,0x5b,0x0b,0xc0,0x75, +/*0000ceb0:*/0x05,0x8b,0xc3,0xf8,0xeb,0x1b,0x6a,0x00,0x8b,0xdc,0x26,0xff,0x75,0x1b,0x16,0x53, +/*0000cec0:*/0x6a,0x65,0x26,0xff,0x5d,0x0d,0x83,0xc4,0x08,0x5b,0x33,0xdb,0x0b,0xc0,0x74,0x01, +/*0000ced0:*/0xf9,0x1f,0x66,0x59,0x66,0x5b,0x66,0x58,0xc3,0x66,0x50,0x66,0x53,0x66,0x52,0x66, +/*0000cee0:*/0x57,0x1e,0xbf,0x00,0xe0,0x8e,0xdf,0x80,0x3e,0x00,0x00,0x24,0x75,0x17,0x80,0x3e, +/*0000cef0:*/0x01,0x00,0x50,0x75,0x10,0x80,0x3e,0x02,0x00,0x4d,0x75,0x09,0x80,0x3e,0x03,0x00, +/*0000cf00:*/0x4d,0x75,0x02,0xeb,0x14,0x47,0x75,0xdd,0x66,0xb9,0x00,0x00,0x00,0x00,0xf9,0x1f, +/*0000cf10:*/0x66,0x5f,0x66,0x5a,0x66,0x5b,0x66,0x58,0xc3,0x0f,0xb6,0x06,0x05,0x00,0x50,0x66, +/*0000cf20:*/0x6a,0x00,0x1e,0x6a,0x00,0xe8,0xe2,0xf2,0x3c,0x00,0x75,0xd9,0x66,0x83,0x3e,0x07, +/*0000cf30:*/0x00,0x00,0x74,0xd1,0x66,0x8b,0x0e,0x07,0x00,0xf8,0xeb,0xd3,0xc3,0x66,0x33,0xc0, +/*0000cf40:*/0xc3,0x6a,0x00,0x81,0xfc,0x00,0x04,0x77,0x13,0x50,0x8c,0xd0,0x83,0xf8,0x00,0x58, +/*0000cf50:*/0x75,0x0a,0x83,0xc4,0x02,0x55,0x8b,0xec,0xbc,0x00,0x7c,0x55,0x2e,0xa3,0x08,0x01, +/*0000cf60:*/0x2e,0x89,0x1e,0x0a,0x01,0x2e,0x89,0x16,0x0c,0x01,0x2e,0x89,0x3e,0x10,0x01,0x2e, +/*0000cf70:*/0x8c,0x06,0x0e,0x01,0x66,0x53,0x66,0x51,0x66,0x52,0x2e,0xa0,0x07,0x00,0x2e,0xf6, +/*0000cf80:*/0x16,0x07,0x00,0x2e,0x32,0x06,0x07,0x00,0x3c,0xff,0x74,0x52,0x0e,0x68,0xb1,0x0f, +/*0000cf90:*/0xe8,0xc9,0xf1,0x53,0x51,0x1e,0xbb,0x40,0x00,0x8e,0xdb,0xb9,0x48,0x00,0x8a,0x1e, +/*0000cfa0:*/0x6c,0x00,0x38,0xdf,0x74,0xf8,0x8a,0xfb,0xe2,0xf4,0x59,0x5b,0x1f,0xf9,0xe9,0x93, +/*0000cfb0:*/0xfd,0x0d,0x0a,0x50,0x58,0x45,0x2d,0x45,0x30,0x36,0x3a,0x20,0x4f,0x70,0x74,0x69, +/*0000cfc0:*/0x6f,0x6e,0x20,0x52,0x4f,0x4d,0x20,0x72,0x65,0x71,0x75,0x69,0x72,0x65,0x73,0x20, +/*0000cfd0:*/0x44,0x44,0x49,0x4d,0x20,0x73,0x75,0x70,0x70,0x6f,0x72,0x74,0x2e,0x00,0x66,0xb9, +/*0000cfe0:*/0x00,0x00,0x00,0x00,0x2e,0xf7,0x06,0xbf,0x02,0x01,0x00,0x0f,0x84,0xcc,0x00,0x66, +/*0000cff0:*/0xbb,0x00,0x00,0x00,0x00,0x8c,0xcb,0x66,0xc1,0xe3,0x04,0xe8,0xdb,0xfe,0x66,0x83, +/*0000d000:*/0xf9,0x00,0x0f,0x84,0xb5,0x00,0x66,0x52,0x6a,0x02,0x66,0x6a,0xff,0x66,0x2e,0x0f, +/*0000d010:*/0xb6,0x06,0x02,0x00,0x66,0xc1,0xe0,0x05,0x66,0x50,0x6a,0x00,0x0e,0x68,0x23,0x10, +/*0000d020:*/0x66,0x51,0xcb,0x83,0xc4,0x0c,0x66,0xc1,0xe2,0x10,0x8b,0xd0,0x66,0x83,0xfa,0xff, +/*0000d030:*/0x75,0x30,0x0e,0x68,0x43,0x10,0xe8,0x23,0xf1,0x66,0x5a,0x66,0xb9,0x00,0x00,0x00, +/*0000d040:*/0x00,0xeb,0x78,0x0d,0x0a,0x49,0x6e,0x76,0x61,0x6c,0x69,0x64,0x20,0x50,0x4d,0x4d, +/*0000d050:*/0x20,0x66,0x75,0x6e,0x63,0x74,0x69,0x6f,0x6e,0x20,0x6e,0x75,0x6d,0x62,0x65,0x72, +/*0000d060:*/0x2e,0x00,0x66,0x83,0xfa,0x00,0x75,0x26,0x0e,0x68,0x76,0x10,0x66,0x5a,0x66,0xb9, +/*0000d070:*/0x00,0x00,0x00,0x00,0xeb,0x45,0x0d,0x0a,0x50,0x4d,0x4d,0x20,0x61,0x6c,0x6c,0x6f, +/*0000d080:*/0x63,0x61,0x74,0x69,0x6f,0x6e,0x20,0x65,0x72,0x72,0x6f,0x72,0x2e,0x00,0x1e,0x66, +/*0000d090:*/0x57,0x66,0x2e,0x0f,0xb6,0x3e,0x02,0x00,0x66,0xc1,0xe7,0x09,0xb8,0x00,0x00,0x8e, +/*0000d0a0:*/0xd8,0x66,0x83,0xef,0x04,0x72,0x0c,0x67,0x66,0x8b,0x04,0x1f,0x67,0x66,0x89,0x04, +/*0000d0b0:*/0x17,0xeb,0xee,0x66,0x8b,0xda,0x66,0x5f,0x1f,0x66,0x5a,0x66,0x2e,0x01,0x1e,0xc1, +/*0000d0c0:*/0x02,0x66,0x2e,0x83,0x3e,0xcd,0x02,0x00,0x74,0x06,0x66,0x2e,0x01,0x1e,0xcd,0x02, +/*0000d0d0:*/0xe8,0x06,0xf2,0x83,0xf8,0x30,0x74,0x66,0x83,0xf8,0x10,0x74,0x09,0x83,0xf8,0x20, +/*0000d0e0:*/0x74,0x17,0xf9,0xe9,0x5e,0xfc,0x1e,0xb8,0x00,0x00,0x8e,0xd8,0xc7,0x06,0x60,0x00, +/*0000d0f0:*/0x0b,0x0b,0x8c,0x0e,0x62,0x00,0x1f,0xeb,0x1c,0x1e,0xb8,0x00,0x00,0x8e,0xd8,0x66, +/*0000d100:*/0xa1,0x64,0x00,0x66,0x2e,0xa3,0x12,0x01,0xc7,0x06,0x64,0x00,0x11,0x0b,0x8c,0x0e, +/*0000d110:*/0x66,0x00,0x1f,0xeb,0x00,0x33,0xdb,0x2e,0x80,0x26,0x75,0x00,0xfb,0x2e,0x89,0x1e, +/*0000d120:*/0x7a,0x00,0x2e,0x0f,0xb6,0x06,0x65,0x00,0xc1,0xe0,0x04,0x50,0x6a,0x00,0x68,0x60, +/*0000d130:*/0x00,0x0e,0x6a,0x00,0xe8,0xd3,0xf0,0x2e,0x28,0x06,0x69,0x00,0xeb,0x03,0xbb,0x20, +/*0000d140:*/0x00,0x2e,0x0f,0xb6,0x06,0x24,0x00,0x50,0x6a,0x00,0x68,0x20,0x00,0x0e,0x6a,0x00, +/*0000d150:*/0xe8,0xb7,0xf0,0x2e,0x28,0x06,0x25,0x00,0x2e,0xf7,0x06,0xbf,0x02,0x01,0x00,0x74, +/*0000d160:*/0x0c,0x66,0x2e,0x81,0x3e,0xc1,0x02,0x00,0x00,0x10,0x00,0x72,0x10,0xb8,0x81,0x11, +/*0000d170:*/0x05,0xff,0x07,0xc1,0xe8,0x0b,0xc1,0xe0,0x02,0x2e,0xa2,0x02,0x00,0xf8,0xe9,0xc3, +/*0000d180:*/0xfb,0x11,0x00,0x00,0x00,0xc3,0x01,0x66,0x00,0xd6,0x00,0x86,0x00,0x8c,0x00,0xe6, +/*0000d190:*/0x00,0xdf,0x00,0x37,0x00,0x38,0x00,0x56,0x00,0x57,0x00,0x00,0x00,0x86,0x00,0x8c, +/*0000d1a0:*/0x00,0xe6,0x00,0xdf,0x00,0x37,0x00,0x38,0x00,0x56,0x00,0x57,0x00,0x00,0x00,0x41, +/*0000d1b0:*/0x44,0x41,0x50,0x54,0x45,0x52,0x5f,0x47,0x65,0x74,0x54,0x72,0x61,0x6e,0x73,0x6d, +/*0000d1c0:*/0x69,0x74,0x51,0x75,0x65,0x75,0x65,0x53,0x69,0x7a,0x65,0x0a,0x00,0x20,0x20,0x20, +/*0000d1d0:*/0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x8d,0xa4,0x24,0x00,0x00,0x00, +/*0000d1e0:*/0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0xfb,0x00,0x74,0x1f,0x83,0xfb,0x15, +/*0000d1f0:*/0x74,0x1a,0x83,0xfb,0x01,0x74,0x15,0x83,0xfb,0x02,0x74,0x10,0x83,0xfb,0x14,0x74, +/*0000d200:*/0x0b,0x06,0x57,0x53,0x0e,0xe8,0x25,0x0e,0x83,0xc4,0x06,0xcb,0x8c,0xc0,0x0b,0xc7, +/*0000d210:*/0x74,0x05,0x26,0xc7,0x05,0x03,0x00,0xb8,0x01,0x00,0xcb,0x8d,0x49,0x00,0x51,0x10, +/*0000d220:*/0x97,0x11,0x9f,0x11,0xa7,0x11,0xca,0x11,0xe0,0x11,0x21,0x12,0x44,0x12,0x67,0x12, +/*0000d230:*/0x7d,0x12,0x93,0x12,0xa9,0x12,0xbf,0x12,0x19,0x13,0x55,0x13,0x73,0x13,0x91,0x13, +/*0000d240:*/0x09,0x14,0xdd,0x12,0xfb,0x12,0x1f,0x14,0x08,0x11,0x37,0x13,0xaf,0x13,0xcd,0x13, +/*0000d250:*/0xeb,0x13,0x8d,0x64,0x24,0x00,0x21,0x50,0x58,0x45,0x58,0x82,0x00,0x00,0x20,0x00, +/*0000d260:*/0x00,0x00,0x00,0x00,0x00,0x00,0x57,0x0e,0x00,0x00,0xe3,0x0f,0x00,0x00,0x00,0x00, +/*0000d270:*/0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d280:*/0x00,0x00,0x00,0x00,0xb0,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0xd2,0x74,0x00,0x00, +/*0000d290:*/0x00,0x00,0x00,0x00,0xd2,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x39,0x00,0x00, +/*0000d2a0:*/0x00,0x00,0x00,0x00,0xfe,0x5d,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x5d,0x00,0x00, +/*0000d2b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x58,0x45,0x4e,0x56,0x2b,0x01,0x02,0x2c,0x2c, +/*0000d2c0:*/0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d2d0:*/0xfe,0x5d,0x00,0x00,0x30,0x39,0x00,0x00,0xb0,0x3f,0x80,0x00,0xd2,0x74,0x80,0x00, +/*0000d2e0:*/0xd5,0x09,0x8d,0x64,0x24,0x00,0x00,0x00,0x00,0x00,0x8d,0xa4,0x24,0x00,0x00,0x00, +/*0000d2f0:*/0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d300:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d310:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d320:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d330:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d340:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d350:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d360:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d370:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d380:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d390:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d3f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d400:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d410:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d420:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d430:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d440:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d450:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d460:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d470:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d480:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d490:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d4f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d500:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d510:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d520:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d530:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d540:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d550:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d560:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d570:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d580:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d590:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d5f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d600:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d610:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d620:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d630:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d640:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d650:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d660:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d670:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d680:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d690:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d6f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d700:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d710:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d720:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d730:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d740:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d750:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d760:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d770:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d780:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d790:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d7f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d800:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d810:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d820:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d830:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d840:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d850:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d860:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d870:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d880:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d890:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d8f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d900:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d910:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d920:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d930:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d940:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d950:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d960:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d970:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d980:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d990:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9c0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9d0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9e0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000d9f0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000da90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000daa0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dab0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dac0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dad0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dae0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000daf0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000db90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dba0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dbb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dbc0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dbd0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dbe0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dbf0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dc90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dca0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dcb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dcc0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dcd0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dce0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dcf0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dd90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dda0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000ddb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000ddc0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000ddd0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dde0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000ddf0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de30:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de40:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de50:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000de90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dea0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000deb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dec0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000ded0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000dee0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*0000def0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x01,0x24,0x0d,0xb4,0x00, +/*0000df00:*/0xcd,0x16,0x0a,0xc0,0x74,0x02,0x32,0xe4,0xc3,0xb4,0x01,0xcd,0x16,0x75,0x02,0x33, +/*0000df10:*/0xc0,0x0a,0xc0,0x74,0x02,0x32,0xe4,0x0b,0xc0,0xc3,0x55,0x8b,0xec,0x66,0x60,0x8a, +/*0000df20:*/0x46,0x04,0xb4,0x0e,0xbb,0x07,0x00,0xb9,0x01,0x00,0xcd,0x10,0x66,0x61,0x90,0x5d, +/*0000df30:*/0xc2,0x02,0x00,0x6a,0x20,0xe8,0xe2,0xff,0xc3,0x6a,0x0d,0xe8,0xdc,0xff,0x6a,0x0a, +/*0000df40:*/0xe8,0xd7,0xff,0xc3,0x55,0x8b,0xec,0x50,0x53,0x1e,0xc5,0x5e,0x04,0x8a,0x07,0x3c, +/*0000df50:*/0x00,0x74,0x09,0x32,0xe4,0x50,0xe8,0xc1,0xff,0x43,0xeb,0xf1,0x1f,0x5b,0x58,0x5d, +/*0000df60:*/0xc2,0x04,0x00,0x55,0x8b,0xec,0x50,0x8a,0x46,0x04,0x24,0x0f,0x04,0x30,0x3c,0x39, +/*0000df70:*/0x76,0x02,0x04,0x07,0x50,0xe8,0xa2,0xff,0x58,0x5d,0xc2,0x02,0x00,0x55,0x8b,0xec, +/*0000df80:*/0x50,0x8a,0x46,0x04,0xc0,0xc0,0x04,0x50,0xe8,0xd8,0xff,0xc0,0xc0,0x04,0x50,0xe8, +/*0000df90:*/0xd1,0xff,0x58,0x5d,0xc2,0x02,0x00,0x55,0x8b,0xec,0x50,0x8b,0x46,0x04,0x86,0xe0, +/*0000dfa0:*/0x50,0xe8,0xd9,0xff,0x86,0xe0,0x50,0xe8,0xd3,0xff,0x58,0x5d,0xc2,0x02,0x00,0x55, +/*0000dfb0:*/0x8b,0xec,0x66,0x50,0x66,0x8b,0x46,0x04,0x66,0xc1,0xc0,0x10,0x50,0xe8,0xd7,0xff, +/*0000dfc0:*/0x66,0xc1,0xc0,0x10,0x50,0xe8,0xcf,0xff,0x66,0x58,0x5d,0xc2,0x04,0x00,0x55,0x8b, +/*0000dfd0:*/0xec,0x66,0x50,0x66,0x8b,0x46,0x04,0x66,0xc1,0xc0,0x10,0x50,0xe8,0xb8,0xff,0x6a, +/*0000dfe0:*/0x3a,0xe8,0x36,0xff,0x66,0xc1,0xc0,0x10,0x50,0xe8,0xab,0xff,0x66,0x58,0x5d,0xc2, +/*0000dff0:*/0x04,0x00,0x66,0x55,0x8b,0xec,0x66,0x56,0x66,0x57,0x66,0x53,0x66,0x51,0x66,0x52, +/*0000e000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eaa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ead0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eaf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ece0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ede0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eeb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000faa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000faf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000feb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; diff --git a/Targets/Bonito2F7inch/Bonito/vgarom.c b/Targets/Bonito2F7inch/Bonito/vgarom.c new file mode 100644 index 00000000..a042f992 --- /dev/null +++ b/Targets/Bonito2F7inch/Bonito/vgarom.c @@ -0,0 +1,4097 @@ +char vgarom[]={ +/*00000000:*/0x55,0xaa,0x58,0xe9,0x17,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000010:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x01,0x00,0x00,0x00,0x00,0x49,0x42, +/*00000020:*/0x4d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000030:*/0x20,0x37,0x36,0x31,0x32,0x39,0x35,0x35,0x32,0x30,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000040:*/0x3f,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000050:*/0x32,0x30,0x30,0x35,0x2f,0x30,0x32,0x2f,0x32,0x32,0x20,0x31,0x37,0x3a,0x32,0x33, +/*00000060:*/0x00,0x00,0x00,0x00,0xe9,0x12,0x0f,0x00,0xe9,0xa2,0x1a,0x00,0x00,0x00,0x00,0x00, +/*00000070:*/0x47,0xbf,0x8e,0x00,0x02,0x10,0x3b,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000080:*/0x0d,0x0a,0x52,0x56,0x31,0x30,0x30,0x20,0x50,0x2f,0x4e,0x20,0x31,0x31,0x33,0x2d, +/*00000090:*/0x38,0x35,0x35,0x33,0x31,0x2d,0x31,0x30,0x30,0x20,0x42,0x49,0x4f,0x53,0x0d,0x0a, +/*000000a0:*/0x00,0x28,0x43,0x29,0x20,0x31,0x39,0x38,0x38,0x2d,0x32,0x30,0x30,0x32,0x2c,0x20, +/*000000b0:*/0x41,0x54,0x49,0x20,0x54,0x65,0x63,0x68,0x6e,0x6f,0x6c,0x6f,0x67,0x69,0x65,0x73, +/*000000c0:*/0x20,0x49,0x6e,0x63,0x2e,0x20,0x42,0x4b,0x2d,0x41,0x54,0x49,0x20,0x56,0x45,0x52, +/*000000d0:*/0x30,0x30,0x38,0x2e,0x30,0x30,0x34,0x2e,0x30,0x33,0x37,0x2e,0x30,0x30,0x31,0x00, +/*000000e0:*/0x42,0x52,0x20,0x79,0x69,0x31,0x31,0x35,0x30,0x30,0x63,0x2e,0x63,0x66,0x67,0x20, +/*000000f0:*/0x20,0x20,0x20,0x76,0x36,0x31,0x31,0x20,0x00,0x52,0x31,0x30,0x30,0x50,0x43,0x49, +/*00000100:*/0x20,0x44,0x47,0x44,0x31,0x55,0x4e,0x00,0x00,0x90,0x60,0x00,0x08,0xa0,0x00,0x00, +/*00000110:*/0x08,0x04,0x60,0x00,0x23,0x1b,0x48,0x56,0xdd,0x01,0x92,0x01,0xe0,0x00,0x80,0x00, +/*00000120:*/0xf9,0x00,0x00,0x00,0x00,0xc0,0x00,0xf0,0x02,0x10,0x3b,0x01,0x59,0x51,0x00,0x00, +/*00000130:*/0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x70,0x78,0x65,0xf3,0x09,0x18,0x06,0x00,0x00, +/*00000140:*/0x03,0x04,0xf1,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000150:*/0x00,0x00,0xef,0x02,0xbb,0x03,0x18,0x76,0x00,0x00,0x5e,0x02,0xfb,0x03,0x9b,0x03, +/*00000160:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd2,0x01,0x50,0x43,0x49,0x52, +/*00000170:*/0x02,0x10,0x59,0x51,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x03,0x58,0x00,0x04,0x08, +/*00000180:*/0x00,0x80,0x00,0x00,0x41,0x54,0x49,0x20,0x52,0x41,0x44,0x45,0x4f,0x4e,0x20,0x56, +/*00000190:*/0x45,0x00,0x8a,0xd7,0x41,0x15,0xff,0xff,0xff,0xff,0x31,0x76,0x00,0x00,0xff,0xff, +/*000001a0:*/0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +/*000001b0:*/0xff,0xff,0x8a,0xd7,0x41,0x15,0xff,0xff,0xff,0xff,0x31,0x76,0x00,0x00,0xff,0xff, +/*000001c0:*/0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +/*000001d0:*/0xff,0xff,0x00,0x01,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x41,0xff, +/*000001e0:*/0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x30,0x20,0xb0,0xa3,0x33,0x51,0xec,0x00,0x43, +/*000001f0:*/0x44,0x00,0x00,0xd0,0x41,0xfd,0xff,0xff,0xff,0x02,0x00,0x00,0x00,0x50,0x20,0x00, +/*00000200:*/0x00,0x00,0x04,0x58,0x20,0x02,0x41,0x60,0xff,0x68,0x41,0xff,0xff,0xfe,0xff,0x00, +/*00000210:*/0x12,0x00,0x00,0x78,0x01,0xff,0x7f,0x1f,0xff,0x7c,0x01,0xff,0xbf,0xcf,0xfe,0x88, +/*00000220:*/0x41,0xff,0xff,0xff,0xff,0x00,0x7c,0x00,0x08,0x00,0x4d,0xff,0xff,0xff,0x00,0x00, +/*00000230:*/0x00,0x00,0x5b,0x8c,0x48,0xef,0xfc,0x00,0xf8,0x00,0x00,0x48,0x07,0x04,0x4d,0xf0, +/*00000240:*/0xff,0xff,0xff,0x06,0x00,0x00,0x00,0x84,0x42,0xff,0xff,0xff,0xff,0x08,0x00,0x00, +/*00000250:*/0x00,0x30,0x40,0xef,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x41, +/*00000260:*/0xff,0xff,0xff,0xff,0x04,0x20,0x00,0x20,0x58,0x41,0x00,0x00,0x00,0xf0,0x00,0x00, +/*00000270:*/0x3a,0x40,0x44,0x01,0x6b,0x35,0x05,0x14,0x4c,0x01,0xf0,0xff,0x0f,0x00,0x48,0x01, +/*00000280:*/0x00,0x00,0xff,0xff,0x54,0x01,0x77,0x77,0x77,0x77,0x8c,0x01,0x66,0x66,0x01,0x00, +/*00000290:*/0x10,0x09,0x04,0x00,0x00,0x00,0x10,0x40,0xfb,0xff,0xff,0xff,0x04,0x00,0x00,0x00, +/*000002a0:*/0x64,0x4d,0xff,0xfb,0xff,0xff,0x00,0x00,0x00,0x00,0xa8,0x02,0x1b,0x0a,0x00,0x00, +/*000002b0:*/0x64,0x4d,0xff,0xfb,0xff,0xff,0x22,0x02,0x00,0x00,0x00,0x48,0xff,0xff,0xff,0xbf, +/*000002c0:*/0x00,0x00,0x00,0x40,0x10,0x4d,0xff,0xff,0xff,0xef,0x00,0x00,0x00,0x10,0xdc,0x44, +/*000002d0:*/0xff,0xfe,0xff,0xff,0x00,0x01,0x00,0x00,0x34,0x40,0xff,0xff,0xff,0x73,0x00,0x00, +/*000002e0:*/0x00,0x84,0x74,0x41,0x00,0xff,0xef,0xff,0x00,0x00,0x1e,0x00,0x00,0x00,0x01,0x0d, +/*000002f0:*/0xf8,0xff,0xff,0xff,0x12,0x00,0x00,0x35,0x0a,0x08,0x00,0x00,0x00,0x00,0x2d,0x00, +/*00000300:*/0x00,0x00,0x00,0x82,0x03,0x3c,0x00,0x00,0x00,0x0a,0x0c,0x4a,0x4a,0x01,0x0e,0x33, +/*00000310:*/0xfc,0x00,0x04,0x0c,0x33,0xbc,0x00,0x04,0x02,0x03,0xa7,0x00,0x00,0x0f,0x3f,0x05, +/*00000320:*/0x00,0x00,0x10,0x83,0x08,0x83,0x08,0x82,0x4e,0x00,0xfd,0x00,0x82,0x4e,0x00,0xfe, +/*00000330:*/0x00,0x82,0x12,0x12,0x00,0x35,0x0a,0x82,0x4f,0x00,0xfe,0x00,0x81,0x82,0x50,0x00, +/*00000340:*/0xfe,0x00,0x82,0x50,0x02,0xfe,0x00,0x81,0x82,0x4f,0x00,0xfd,0x00,0x82,0x50,0x00, +/*00000350:*/0xfd,0x00,0x82,0x50,0x02,0xfd,0x00,0x82,0x82,0x4c,0x00,0xfe,0x00,0x81,0x82,0x4c, +/*00000360:*/0x00,0xfd,0x00,0x82,0x0d,0xfa,0xff,0xff,0xff,0x82,0x48,0x00,0x3c,0x00,0x42,0x00, +/*00000370:*/0xff,0x03,0x04,0xc0,0x81,0x03,0x00,0x05,0xf7,0x81,0x03,0x00,0x06,0xc0,0x81,0x03, +/*00000380:*/0x00,0x07,0xf7,0x81,0x03,0x00,0x42,0x00,0xfd,0x00,0x81,0x82,0x42,0x00,0xfe,0x00, +/*00000390:*/0x82,0x48,0x00,0x3c,0x03,0x82,0x41,0x00,0xff,0x10,0x00,0x54,0x01,0x3f,0x30,0x54, +/*000003a0:*/0x02,0x1f,0x00,0x41,0x01,0xff,0x80,0x0d,0x02,0x00,0x00,0x00,0x82,0x2d,0xc0,0xf8, +/*000003b0:*/0x00,0x00,0x48,0x00,0xff,0xc0,0x82,0x00,0x29,0x02,0x00,0x20,0x2e,0x20,0xad,0x10, +/*000003c0:*/0x2d,0x10,0xa9,0x08,0x29,0x08,0xa5,0x08,0x25,0x10,0x8d,0x08,0x0d,0x08,0x89,0x04, +/*000003d0:*/0x29,0x00,0x6f,0x01,0x00,0x00,0x20,0x80,0x00,0x20,0x0f,0x0f,0x00,0x32,0x01,0x80, +/*000003e0:*/0x32,0x01,0x0f,0x0f,0x00,0x32,0x00,0x80,0x32,0x00,0x0f,0x0f,0x10,0x32,0x00,0xff, +/*000003f0:*/0x80,0x24,0x41,0x54,0x49,0x02,0x0a,0x0f,0x00,0x00,0x00,0x11,0x12,0x00,0x23,0x01, +/*00000400:*/0x32,0x00,0x00,0x03,0x1a,0x20,0x93,0x00,0x01,0xff,0xff,0x27,0x0a,0x00,0x00,0x27, +/*00000410:*/0x0a,0x00,0x00,0x8c,0x3c,0x27,0x0a,0x00,0x00,0x27,0x0a,0x00,0x00,0x66,0x60,0x8b, +/*00000420:*/0xd8,0x2e,0x83,0x3e,0x22,0x01,0x00,0x75,0x2e,0x2e,0x89,0x1e,0x22,0x01,0x2e,0x8c, +/*00000430:*/0x0e,0x24,0x01,0xb8,0x09,0xb1,0xbf,0x14,0x00,0xcd,0x1a,0x83,0xe1,0xfc,0x75,0x0b, +/*00000440:*/0xb8,0x0c,0xb1,0xbf,0x14,0x00,0xb9,0x00,0xf0,0xcd,0x1a,0x2e,0x89,0x0e,0x26,0x01, +/*00000450:*/0x2e,0x39,0x0e,0x26,0x01,0x75,0xe9,0x2e,0x8b,0x16,0x26,0x01,0x8c,0xc8,0xb2,0x14, +/*00000460:*/0xef,0x2e,0xa1,0x22,0x01,0xb2,0x16,0xef,0x66,0x61,0x1e,0x06,0x66,0x60,0xbb,0xdd, +/*00000470:*/0x01,0xe8,0x5c,0x60,0xe8,0xb8,0x00,0xe8,0x26,0x00,0xe8,0x1c,0x9f,0xe8,0x08,0x00, +/*00000480:*/0xe8,0x21,0x01,0x66,0x61,0x07,0x1f,0xcb,0xe8,0x00,0x74,0x0e,0x07,0xb8,0x01,0x13, +/*00000490:*/0xbb,0x07,0x00,0x8b,0x16,0x50,0x04,0xbd,0x80,0x00,0xb9,0x21,0x00,0xcd,0x6d,0xc3, +/*000004a0:*/0x56,0xbe,0xef,0x02,0xe8,0xc5,0x64,0x5e,0xe8,0x1b,0x60,0xe8,0x81,0x65,0xe8,0xb9, +/*000004b0:*/0x9c,0xe8,0x84,0x72,0xe8,0x5d,0x91,0x56,0xbe,0x9b,0x03,0xe8,0xae,0x64,0x5e,0xe8, +/*000004c0:*/0x34,0x00,0xe8,0x0d,0x00,0xe8,0xb6,0x8d,0xe8,0x8d,0x8d,0xe8,0x95,0x08,0xe8,0xa9, +/*000004d0:*/0x4a,0xc3,0xe8,0xb6,0x73,0xe8,0xe2,0x1a,0xa0,0x89,0x04,0x0c,0x11,0x24,0x17,0xa2, +/*000004e0:*/0x89,0x04,0xb0,0x01,0xe8,0xd6,0x41,0xa0,0x89,0x04,0x50,0xe8,0x84,0x42,0x58,0xa2, +/*000004f0:*/0x89,0x04,0xe8,0xc5,0x42,0xc3,0xe8,0xac,0x51,0xb2,0x20,0xed,0xa9,0x3f,0x0b,0x75, +/*00000500:*/0x03,0x0c,0x02,0xee,0x32,0xe4,0xe8,0xbf,0x5c,0xa8,0x03,0x74,0x03,0x80,0xcc,0x20, +/*00000510:*/0xe8,0xbd,0x5c,0xa8,0x03,0x74,0x03,0x80,0xcc,0x02,0xa8,0x08,0x74,0x05,0x80,0xcc, +/*00000520:*/0x08,0xeb,0x08,0xf6,0xc4,0xaf,0x75,0x03,0x80,0xcc,0x02,0xe8,0x25,0x5d,0xc3,0x2e, +/*00000530:*/0x83,0x3e,0x5a,0x56,0x00,0x75,0x05,0x2e,0x8c,0x0e,0x58,0x56,0xba,0xc2,0x03,0xb0, +/*00000540:*/0x05,0xee,0xb2,0xda,0xec,0xb2,0xba,0xec,0xb2,0xc0,0x32,0xc0,0xee,0xb2,0xc4,0xb8, +/*00000550:*/0x01,0x20,0xef,0xe8,0x35,0x73,0x9c,0xfa,0x66,0xa1,0x40,0x00,0x66,0xa3,0x08,0x01, +/*00000560:*/0xc7,0x06,0x7c,0x00,0x0a,0x29,0x8c,0x0e,0x7e,0x00,0xc7,0x06,0x0c,0x01,0x1d,0x2d, +/*00000570:*/0x8c,0x0e,0x0e,0x01,0xc7,0x06,0xb4,0x01,0x22,0x1b,0x8c,0x0e,0xb6,0x01,0xc7,0x06, +/*00000580:*/0x40,0x00,0x22,0x1b,0x8c,0x0e,0x42,0x00,0xc7,0x06,0xa8,0x04,0x96,0x1b,0x8c,0x0e, +/*00000590:*/0xaa,0x04,0x2e,0x8e,0x1e,0x58,0x56,0x8c,0xc8,0xa3,0x98,0x1b,0xa3,0xa8,0x1b,0xa3, +/*000005a0:*/0xba,0x1b,0x9d,0xc3,0x1e,0x56,0x2e,0x8e,0x1e,0x58,0x56,0xa0,0x02,0x00,0x3c,0x80, +/*000005b0:*/0x76,0x05,0xc6,0x06,0x02,0x00,0x80,0xb9,0x00,0x80,0xfc,0xc6,0x06,0x21,0x00,0x00, +/*000005c0:*/0x33,0xf6,0x32,0xe4,0xac,0x02,0xe0,0xe2,0xfb,0xf6,0xd4,0xfe,0xc4,0x88,0x26,0x21, +/*000005d0:*/0x00,0x8a,0x2e,0x02,0x00,0x80,0xed,0x40,0xd0,0xe5,0x32,0xc9,0x32,0xe4,0xac,0x02, +/*000005e0:*/0xe0,0xe2,0xfb,0xf6,0xd4,0xfe,0xc4,0xbe,0x66,0xa1,0x88,0x64,0xff,0x5e,0x1f,0xc3, +/*000005f0:*/0xd6,0x09,0x10,0x0b,0x00,0x00,0x00,0x00,0xd6,0x09,0x10,0x0b,0x4e,0x0c,0x10,0x0e, +/*00000600:*/0x68,0x10,0x8a,0x11,0x56,0x13,0x88,0x13,0x00,0x00,0xf8,0x2a,0x38,0x31,0xbc,0x34, +/*00000610:*/0x00,0x00,0x40,0x1f,0x4c,0x1d,0x64,0x19,0x0a,0x46,0x03,0x03,0xf8,0x05,0xf0,0x05, +/*00000620:*/0xd8,0x40,0xd8,0x40,0x03,0x0c,0x8c,0x0a,0x3c,0x00,0xe0,0x2e,0x00,0x00,0xb8,0x88, +/*00000630:*/0x00,0x00,0x8c,0x0a,0x0c,0x00,0x20,0x4e,0x00,0x00,0x40,0x9c,0x00,0x00,0x8c,0x0a, +/*00000640:*/0x0c,0x00,0x20,0x4e,0x00,0x00,0x40,0x9c,0x00,0x00,0x01,0x12,0x8c,0x0a,0x28,0x00, +/*00000650:*/0x00,0x00,0xb8,0x0b,0x00,0x00,0xe0,0x2e,0x00,0x00,0xb8,0x88,0x00,0x00,0x83,0xec, +/*00000660:*/0x3e,0x8b,0xec,0xe8,0x30,0x00,0x8a,0x46,0x02,0x0a,0xc0,0x75,0x04,0xb4,0x01,0xeb, +/*00000670:*/0x21,0xe8,0x12,0x5b,0xe8,0x09,0x5c,0xa8,0x88,0x74,0x0b,0xe8,0x63,0x59,0xe8,0x95, +/*00000680:*/0x6a,0xe8,0xb1,0x93,0xeb,0x07,0xa8,0x22,0x74,0x03,0xe8,0x89,0x6a,0xe8,0xb0,0x5a, +/*00000690:*/0x32,0xe4,0x83,0xc4,0x3e,0xc3,0x53,0xe8,0xf1,0x06,0x88,0x4e,0x29,0x80,0xe1,0x0f, +/*000006a0:*/0x88,0x4e,0x3d,0x8a,0xc8,0xe8,0xba,0x5b,0x32,0xe4,0xa8,0x02,0x74,0x0e,0xe8,0x08, +/*000006b0:*/0x5a,0x74,0x05,0x80,0xcc,0x02,0xeb,0x04,0x3c,0x02,0x74,0x68,0xa8,0x20,0x74,0x0e, +/*000006c0:*/0xe8,0x05,0x5a,0x74,0x05,0x80,0xcc,0x20,0xeb,0x04,0x3c,0x20,0x74,0x56,0xa8,0x08, +/*000006d0:*/0x74,0x13,0xe8,0xb6,0x92,0x74,0x0a,0xf6,0xc4,0x01,0x75,0x09,0x80,0xcc,0x08,0xeb, +/*000006e0:*/0x04,0x3c,0x08,0x74,0x3f,0x3c,0x80,0x74,0x3b,0x80,0xfc,0x00,0x74,0x36,0x88,0x66, +/*000006f0:*/0x3b,0x51,0xe8,0x3f,0x00,0x59,0x8a,0x46,0x02,0x0a,0xc0,0x75,0x2d,0x8a,0x46,0x3b, +/*00000700:*/0x24,0x0b,0xa8,0x05,0x75,0x1e,0x3c,0x0a,0x74,0x12,0xeb,0x18,0xb0,0x0a,0xeb,0xbe, +/*00000710:*/0xb0,0x08,0xeb,0xba,0xb0,0x28,0xeb,0xb6,0xb0,0x22,0xeb,0xa0,0xb0,0x02,0xeb,0x8a, +/*00000720:*/0xb0,0x20,0xeb,0x98,0xc6,0x46,0x02,0x00,0xeb,0x08,0x8a,0x66,0x3b,0xe8,0x3d,0x5b, +/*00000730:*/0xeb,0x00,0x5b,0xc3,0xe8,0x23,0x00,0x80,0x7e,0x02,0x00,0x74,0x1c,0xc6,0x46,0x3a, +/*00000740:*/0x00,0xc7,0x46,0x2e,0x00,0x00,0x66,0xc7,0x46,0x36,0x00,0x00,0x00,0x00,0x66,0xc7, +/*00000750:*/0x46,0x32,0x00,0x00,0x00,0x00,0xe8,0x47,0x5d,0xc3,0xe8,0xf5,0x00,0x80,0xfd,0x13, +/*00000760:*/0x77,0x06,0x80,0xfd,0x12,0x74,0x01,0xc3,0x88,0x6e,0x3c,0x80,0xfd,0xe5,0x75,0x02, +/*00000770:*/0xb5,0x6a,0x06,0x1e,0x60,0x8b,0xc1,0x80,0xfc,0x81,0x0f,0x84,0xb3,0x00,0x80,0xfc, +/*00000780:*/0x82,0x74,0x7f,0xbb,0x77,0x01,0xb9,0x0f,0x00,0xe8,0x7d,0x01,0x74,0x06,0xbb,0x96, +/*00000790:*/0x00,0xb9,0x0f,0x00,0x89,0x5e,0x22,0x89,0x4e,0x20,0xb9,0x00,0x00,0x50,0x33,0xdb, +/*000007a0:*/0x03,0xd9,0xe8,0x39,0x01,0x58,0x38,0xe3,0x75,0x19,0xe8,0xb7,0x00,0xc6,0x46,0x02, +/*000007b0:*/0x00,0x50,0xbb,0x01,0x00,0x03,0xd9,0xe8,0x24,0x01,0x58,0x8a,0xd0,0x22,0xd3,0x38, +/*000007c0:*/0xda,0x74,0x2b,0x03,0x4e,0x20,0x3b,0x4e,0x22,0x72,0xd2,0x8b,0x4e,0x12,0x89,0x4e, +/*000007d0:*/0x22,0x80,0x7e,0x02,0x00,0x74,0x13,0xf6,0x46,0x3b,0x88,0x74,0x0d,0x80,0x7e,0x3c, +/*000007e0:*/0xe5,0x75,0x04,0xc6,0x46,0x07,0x31,0xe8,0x7b,0x94,0x61,0x1f,0x07,0xc3,0xe8,0x73, +/*000007f0:*/0x00,0xe8,0x30,0x01,0x73,0xd5,0x32,0xff,0x88,0x7e,0x02,0x80,0xfc,0x81,0x74,0xcb, +/*00000800:*/0xeb,0xc1,0x52,0x53,0x66,0x5f,0x8b,0xdd,0x16,0x07,0xe8,0x98,0x4e,0x66,0x81,0xcf, +/*00000810:*/0x00,0x00,0x00,0x80,0xb9,0x08,0x00,0xb2,0x00,0x66,0x8b,0xc7,0x66,0xef,0xb2,0x04, +/*00000820:*/0x66,0xed,0x66,0x26,0x89,0x07,0x83,0xc3,0x04,0x66,0x83,0xc7,0x04,0xe2,0xe8,0x8b, +/*00000830:*/0xdd,0x8b,0xfd,0x8b,0xf3,0x06,0x1e,0x06,0x1f,0x16,0x07,0xb9,0x0f,0x00,0xf3,0xa5, +/*00000840:*/0x1f,0x07,0xe8,0x72,0x00,0xe8,0xdc,0x00,0x73,0x81,0x32,0xff,0x88,0x7e,0x02,0xe9, +/*00000850:*/0x79,0xff,0x06,0x51,0x57,0x16,0x07,0x8b,0xfd,0xb9,0x3b,0x00,0x33,0xc0,0xf3,0xaa, +/*00000860:*/0x5f,0x59,0x07,0xc3,0x53,0x50,0x55,0x51,0x8b,0xd9,0x8a,0x6e,0x20,0xe8,0x93,0x00, +/*00000870:*/0x89,0x46,0x00,0x83,0xc5,0x02,0x43,0xfe,0xcd,0x75,0xf2,0x59,0x5d,0x8a,0x66,0x3c, +/*00000880:*/0x80,0xfc,0xe5,0x75,0x2c,0x88,0x66,0x00,0xd1,0x6e,0x12,0x80,0x4e,0x04,0x01,0x8b, +/*00000890:*/0x46,0x06,0xd0,0xe8,0xd0,0xec,0x89,0x46,0x06,0x8b,0x46,0x08,0xfe,0xc0,0xd0,0xe8, +/*000008a0:*/0xfe,0xc8,0x8a,0xdc,0x80,0xe3,0x1f,0xd0,0xeb,0x80,0xe4,0x20,0x0a,0xe3,0x89,0x46, +/*000008b0:*/0x08,0xe8,0x03,0x00,0x58,0x5b,0xc3,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x04, +/*000008c0:*/0x80,0xe4,0x03,0x40,0xc1,0xe0,0x03,0x89,0x46,0x24,0x8b,0x46,0x0c,0xf6,0x46,0x04, +/*000008d0:*/0x01,0x74,0x02,0xd1,0xe8,0x40,0x89,0x46,0x26,0xc6,0x46,0x28,0x01,0xc3,0xe8,0x28, +/*000008e0:*/0x00,0x74,0x16,0x52,0x2e,0x8a,0x26,0x0d,0x01,0x80,0xc4,0x10,0xb0,0x01,0x2e,0x8b, +/*000008f0:*/0x16,0x22,0x01,0xcd,0x10,0x8b,0xc3,0x5a,0xc3,0xd1,0xe3,0x2e,0x8b,0x9f,0xf3,0x09, +/*00000900:*/0x8b,0xc3,0xc3,0x53,0xe8,0xd7,0xff,0x5b,0xc3,0x50,0x52,0x2e,0xa1,0x5a,0x56,0x0b, +/*00000910:*/0xc0,0x74,0x06,0x32,0xc0,0xa8,0x01,0xeb,0x08,0xe8,0x89,0x4d,0xb2,0x10,0xec,0xa8, +/*00000920:*/0x20,0x5a,0x58,0xc3,0x1e,0x60,0xb5,0x06,0xe8,0x7a,0x4d,0xb2,0x10,0xec,0xa8,0x40, +/*00000930:*/0x0f,0x85,0x9d,0x00,0x8b,0x46,0x12,0xe8,0x15,0x6a,0x8b,0xd0,0xe8,0xc5,0x69,0xc1, +/*00000940:*/0xe8,0x03,0x8a,0xd8,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x04,0x40,0x8b,0xf0, +/*00000950:*/0x0e,0x1f,0xbf,0x78,0x65,0x83,0x3d,0x00,0x75,0x05,0x83,0xef,0x07,0xeb,0x09,0x3b, +/*00000960:*/0x35,0x76,0x05,0x83,0xc7,0x07,0xeb,0xed,0xe8,0x81,0x00,0x83,0x3d,0x00,0x74,0x61, +/*00000970:*/0x3b,0x35,0x74,0x05,0x83,0xc7,0x07,0xeb,0xf2,0xf6,0x46,0x29,0x80,0x74,0x06,0xf6, +/*00000980:*/0x45,0x06,0x80,0x75,0xef,0x84,0x45,0x02,0x74,0xea,0x3a,0x5d,0x03,0x72,0xe5,0x39, +/*00000990:*/0x55,0x04,0x72,0xe0,0x8a,0x6d,0x06,0x80,0xe5,0x0f,0x74,0x35,0x66,0x33,0xc0,0xe8, +/*000009a0:*/0x62,0x69,0x66,0xc1,0xe0,0x10,0x66,0x33,0xdb,0x8b,0x5e,0x24,0x66,0x33,0xd2,0x66, +/*000009b0:*/0xf7,0xf3,0x66,0x33,0xd2,0x66,0x33,0xdb,0x8b,0x5e,0x0c,0x43,0x66,0xf7,0xf3,0x83, +/*000009c0:*/0xf8,0x04,0x73,0x0d,0x8b,0xd8,0x2e,0x8a,0x9f,0xe5,0x09,0x38,0xeb,0x73,0x02,0x8a, +/*000009d0:*/0xeb,0x88,0x6e,0x01,0x80,0x7e,0x3d,0x07,0x7d,0x05,0x3a,0x6e,0x3d,0xeb,0x03,0x80, +/*000009e0:*/0xfd,0x04,0x61,0x1f,0xc3,0x01,0x02,0x04,0x05,0x06,0x10,0x10,0xb0,0x80,0xc3,0x90, +/*000009f0:*/0x00,0x01,0x1e,0xe2,0x00,0x80,0x00,0x01,0x00,0x31,0x27,0x28,0x86,0xc0,0x01,0x8f, +/*00000a00:*/0x01,0x9c,0x01,0x02,0x00,0xeb,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000a10:*/0x00,0xe3,0x00,0x80,0x00,0x01,0x00,0x31,0x27,0x28,0x86,0x07,0x02,0xdf,0x01,0xe8, +/*00000a20:*/0x01,0x83,0x00,0xeb,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe4, +/*00000a30:*/0x00,0x80,0x00,0x00,0x00,0x53,0x3f,0x42,0x8a,0xc0,0x01,0x7f,0x01,0x9c,0x01,0x02, +/*00000a40:*/0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0x00,0x80, +/*00000a50:*/0x00,0x00,0x00,0x63,0x4f,0x51,0x0c,0xc0,0x01,0x5d,0x01,0x83,0x01,0x82,0x00,0xd6, +/*00000a60:*/0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe1,0x00,0x80,0x00,0x00, +/*00000a70:*/0x00,0x63,0x4f,0x51,0x8c,0xc0,0x01,0x8f,0x01,0x9c,0x01,0x02,0x00,0xd6,0x09,0x00, +/*00000a80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x90,0x00,0x00,0x00,0x67, +/*00000a90:*/0x4f,0x56,0x87,0xfc,0x01,0xdf,0x01,0xe0,0x01,0x83,0x00,0x10,0x0e,0x00,0x00,0x00, +/*00000aa0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x82,0x00,0x00,0x00,0x68,0x4f,0x51, +/*00000ab0:*/0x88,0xf3,0x01,0xdf,0x01,0xe0,0x01,0x83,0x00,0x4e,0x0c,0x00,0x00,0x00,0x00,0x00, +/*00000ac0:*/0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x81,0x00,0x00,0x00,0x67,0x4f,0x52,0x85,0x07, +/*00000ad0:*/0x02,0xdf,0x01,0xe8,0x01,0x83,0x00,0x30,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000ae0:*/0x00,0x00,0x00,0x12,0x00,0x80,0x00,0x00,0x00,0x63,0x4f,0x51,0x8c,0x0c,0x02,0xdf, +/*00000af0:*/0x01,0xe9,0x01,0x82,0x00,0xd6,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000b00:*/0x00,0x6a,0x00,0x90,0x00,0x00,0x00,0x82,0x63,0x67,0x08,0x76,0x02,0x57,0x02,0x58, +/*00000b10:*/0x02,0x03,0x00,0xf9,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a, +/*00000b20:*/0x00,0x81,0x00,0x00,0x00,0x83,0x63,0x65,0x0a,0x70,0x02,0x57,0x02,0x58,0x02,0x03, +/*00000b30:*/0x00,0x56,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x82, +/*00000b40:*/0x00,0x00,0x00,0x81,0x63,0x6a,0x0f,0x9b,0x02,0x57,0x02,0x7c,0x02,0x06,0x00,0x88, +/*00000b50:*/0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x84,0x00,0x00, +/*00000b60:*/0x00,0x83,0x63,0x68,0x10,0x73,0x02,0x57,0x02,0x58,0x02,0x04,0x00,0xa0,0x0f,0x00, +/*00000b70:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6a,0x00,0x88,0x00,0x00,0x00,0x7f, +/*00000b80:*/0x63,0x66,0x09,0x70,0x02,0x57,0x02,0x58,0x02,0x02,0x00,0x10,0x0e,0x00,0x00,0x00, +/*00000b90:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x90,0x00,0x00,0x00,0xab,0x7f,0x85, +/*00000ba0:*/0x0c,0x27,0x03,0xff,0x02,0x00,0x03,0x03,0x00,0xea,0x24,0x00,0x00,0x00,0x00,0x00, +/*00000bb0:*/0x00,0x00,0x00,0x00,0x00,0x55,0x00,0x81,0x00,0x00,0x00,0xa3,0x7f,0x81,0x0c,0x1f, +/*00000bc0:*/0x03,0xff,0x02,0x00,0x03,0x03,0x00,0xc3,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000bd0:*/0x00,0x00,0x00,0x55,0x00,0x82,0x00,0x00,0x00,0xa5,0x7f,0x82,0x91,0x25,0x03,0xff, +/*00000be0:*/0x02,0x02,0x03,0x86,0x00,0x4c,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000bf0:*/0x00,0x55,0x00,0x84,0x00,0x00,0x00,0xa7,0x7f,0x82,0x91,0x25,0x03,0xff,0x02,0x02, +/*00000c00:*/0x03,0x86,0x00,0x64,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x55, +/*00000c10:*/0x00,0x88,0x00,0x02,0x00,0x9d,0x7f,0x80,0x16,0x32,0x03,0xff,0x02,0x00,0x03,0x08, +/*00000c20:*/0x00,0x8a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0xa0, +/*00000c30:*/0x00,0x00,0x00,0xd7,0x9f,0xa7,0x14,0x2f,0x04,0xff,0x03,0x00,0x04,0x03,0x00,0x86, +/*00000c40:*/0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x81,0x00,0x00, +/*00000c50:*/0x00,0xd2,0x9f,0xa1,0x12,0x29,0x04,0xff,0x03,0x00,0x04,0x03,0x00,0xbc,0x34,0x00, +/*00000c60:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x82,0x00,0x00,0x00,0xd2, +/*00000c70:*/0x9f,0xa9,0x0e,0x29,0x04,0xff,0x03,0x00,0x04,0x05,0x00,0x38,0x31,0x00,0x00,0x00, +/*00000c80:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x84,0x00,0x00,0x00,0xd2,0x9f,0xa5, +/*00000c90:*/0x0e,0x2a,0x04,0xff,0x03,0x00,0x04,0x03,0x00,0x30,0x2a,0x00,0x00,0x00,0x00,0x00, +/*00000ca0:*/0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x88,0x00,0x02,0x00,0xc7,0x9f,0xa9,0x0a,0x1c, +/*00000cb0:*/0x04,0xff,0x03,0x09,0x04,0x0a,0x00,0x40,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000cc0:*/0x00,0x00,0x00,0x83,0x00,0x90,0x00,0x02,0x00,0xd3,0x9f,0xae,0x0f,0x2c,0x04,0xff, +/*00000cd0:*/0x03,0x00,0x04,0x0a,0x00,0xc3,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00000ce0:*/0x00,0x0a,0xdb,0x75,0x3c,0x8e,0xc2,0x32,0xe4,0xb5,0x12,0x8a,0xc5,0xab,0xe8,0x9a, +/*00000cf0:*/0x00,0xab,0xb5,0x6a,0x8a,0xc5,0xab,0xe8,0x91,0x00,0xab,0xb5,0x55,0x8a,0xc5,0xab, +/*00000d00:*/0xe8,0x88,0x00,0xab,0xb5,0x83,0x8a,0xc5,0xab,0xe8,0x7f,0x00,0xab,0xb5,0x84,0x8a, +/*00000d10:*/0xc5,0xab,0xe8,0x76,0x00,0xab,0x33,0xc0,0xab,0xab,0xf7,0xd0,0xab,0xab,0x33,0xc0, +/*00000d20:*/0xc3,0x80,0xfb,0x01,0x75,0x23,0x8e,0xda,0x8b,0xf7,0xad,0xad,0xe8,0x76,0x49,0xb2, +/*00000d30:*/0x18,0xee,0xad,0xad,0xb2,0x19,0xee,0xad,0xad,0xb2,0x1a,0xee,0xad,0xad,0xb2,0x1b, +/*00000d40:*/0xee,0xad,0xad,0xb2,0x1c,0xee,0x33,0xc0,0xc3,0x80,0xfb,0x02,0x75,0x04,0xe8,0x0f, +/*00000d50:*/0x00,0xc3,0x80,0xfb,0x03,0x75,0x06,0xe8,0x09,0x00,0x32,0xe4,0xc3,0xb4,0x01,0xc3, +/*00000d60:*/0xb4,0x01,0xc3,0x55,0x83,0xec,0x20,0x8b,0xec,0xc6,0x46,0x02,0x00,0xc6,0x46,0x06, +/*00000d70:*/0x04,0xc6,0x46,0x0a,0x04,0xc6,0x46,0x0e,0x04,0xc6,0x46,0x12,0x00,0x8c,0xd2,0x8b, +/*00000d80:*/0xfd,0xb3,0x01,0xe8,0x5b,0xff,0x83,0xc4,0x20,0x5d,0xc3,0xe8,0x17,0x49,0x80,0xfd, +/*00000d90:*/0x62,0x74,0x05,0x80,0xfd,0x12,0x75,0x06,0xb2,0x18,0xec,0x0c,0x80,0xc3,0x80,0xfd, +/*00000da0:*/0xe5,0x74,0x05,0x80,0xfd,0x6a,0x75,0x06,0xb2,0x19,0xec,0x0c,0x80,0xc3,0x80,0xfd, +/*00000db0:*/0x55,0x75,0x06,0xb2,0x1a,0xec,0x0c,0x80,0xc3,0x80,0xfd,0x83,0x75,0x06,0xb2,0x1b, +/*00000dc0:*/0xec,0x0c,0x80,0xc3,0x80,0xfd,0x84,0x75,0x06,0xb2,0x1c,0xec,0x0c,0x80,0xc3,0x8a, +/*00000dd0:*/0xc5,0x24,0x80,0xc3,0x50,0x52,0xe8,0xcc,0x48,0xb2,0x5c,0xec,0xa8,0x01,0x75,0xfb, +/*00000de0:*/0xec,0xa8,0x01,0x74,0xfb,0x5a,0x58,0xc3,0x80,0x02,0x90,0x01,0xe1,0x40,0x01,0xc8, +/*00000df0:*/0x00,0xe2,0x40,0x01,0xf0,0x00,0xe3,0x00,0x02,0x80,0x01,0xe4,0x80,0x02,0x5e,0x01, +/*00000e00:*/0xe6,0x80,0x02,0xe0,0x01,0x12,0x20,0x03,0x58,0x02,0x6a,0x00,0x04,0x00,0x03,0x55, +/*00000e10:*/0x00,0x05,0x00,0x04,0x83,0x00,0x00,0x50,0x53,0x51,0x52,0x56,0x57,0xbe,0xe8,0x0d, +/*00000e20:*/0x3c,0x02,0x74,0x18,0x3c,0x00,0x74,0x04,0x3c,0x04,0x75,0x5a,0x2e,0x8a,0x44,0x04, +/*00000e30:*/0xaa,0x83,0xc6,0x05,0x2e,0x83,0x3c,0x00,0x75,0xf2,0xeb,0x4a,0xe8,0x66,0x48,0xb2, +/*00000e40:*/0x11,0xec,0x24,0x3f,0x0a,0xc0,0x74,0x3e,0x32,0xd2,0x8a,0xe0,0xd0,0xe8,0xfe,0xc2, +/*00000e50:*/0xf6,0xc4,0x01,0x74,0xf5,0xfe,0xca,0x8a,0xc2,0xbb,0x7c,0x0e,0x32,0xe4,0xd0,0xe0, +/*00000e60:*/0x03,0xd8,0x2e,0x8b,0x17,0x2e,0x8b,0x1c,0x3b,0xda,0x77,0x05,0x2e,0x8a,0x44,0x04, +/*00000e70:*/0xaa,0x83,0xc6,0x05,0x2e,0x83,0x3c,0x00,0x75,0xeb,0xeb,0x0a,0x80,0x02,0x20,0x03, +/*00000e80:*/0x00,0x04,0x00,0x05,0x40,0x06,0x26,0xc6,0x05,0x00,0x5f,0x5e,0x5a,0x59,0x5b,0x58, +/*00000e90:*/0xc3,0x50,0x32,0xe4,0x26,0x8a,0x47,0x0b,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0xeb,0x0d, +/*00000ea0:*/0x50,0x32,0xe4,0x26,0x8a,0x47,0x0b,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0x26,0x8a,0x47, +/*00000eb0:*/0x11,0x8a,0xe0,0x24,0x02,0xd0,0xe8,0x80,0xe4,0x40,0xc0,0xec,0x05,0x0a,0xe0,0x26, +/*00000ec0:*/0x8a,0x47,0x1c,0x40,0x8b,0xd0,0x58,0xc3,0x66,0x50,0x53,0xbb,0x08,0x02,0xe8,0x20, +/*00000ed0:*/0x49,0x3c,0xda,0x75,0x0f,0xbb,0x54,0x02,0xe8,0x16,0x49,0x3c,0xdf,0x75,0x05,0xb0, +/*00000ee0:*/0xda,0xe8,0x68,0x48,0xbb,0x84,0x02,0xe8,0x46,0x49,0x8a,0xd0,0xf6,0xc4,0x01,0x74, +/*00000ef0:*/0x2c,0xbb,0x50,0x02,0xf6,0xc2,0x02,0x74,0x03,0xbb,0x00,0x02,0xe8,0xf2,0x48,0x32, +/*00000f00:*/0xe4,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0xbb,0x54,0x02,0xf6,0xc2,0x04,0x75,0x03,0xbb, +/*00000f10:*/0x08,0x02,0xe8,0x1b,0x49,0x25,0xff,0x07,0x40,0x8b,0xd0,0xeb,0x4b,0xe8,0x69,0x12, +/*00000f20:*/0x75,0x2f,0xe8,0xc2,0x69,0xb0,0x01,0xee,0x42,0xec,0x4a,0x32,0xe4,0x40,0xc1,0xe0, +/*00000f30:*/0x03,0x8b,0xc8,0xb0,0x07,0xee,0x42,0xec,0x4a,0x8a,0xe0,0x24,0x02,0xd0,0xe8,0x80, +/*00000f40:*/0xe4,0x40,0xc0,0xec,0x05,0x0a,0xe0,0xb0,0x12,0xee,0x42,0xec,0x40,0x8b,0xd0,0xeb, +/*00000f50:*/0x17,0xbb,0x00,0x02,0xe8,0x9a,0x48,0x32,0xe4,0x40,0xc1,0xe0,0x03,0x8b,0xc8,0xbb, +/*00000f60:*/0x08,0x02,0xe8,0xcb,0x48,0x40,0x8b,0xd0,0x5b,0x66,0x58,0xc3,0xcf,0xcb,0x6c,0x0f, +/*00000f70:*/0x6d,0x0f,0x2e,0xff,0x36,0x6e,0x0f,0xeb,0x0a,0x2e,0x8a,0x26,0x0d,0x01,0x2e,0xff, +/*00000f80:*/0x36,0x70,0x0f,0x1e,0x06,0x66,0x60,0x93,0x32,0xff,0xd1,0xe3,0x81,0xfb,0x40,0x00, +/*00000f90:*/0x0f,0x83,0xa9,0x02,0xfc,0x2e,0xff,0xa7,0x9a,0x0f,0xda,0x0f,0xe6,0x0f,0xf6,0x0f, +/*00000fa0:*/0x0d,0x10,0x3c,0x10,0x61,0x10,0x88,0x10,0xb5,0x10,0xcd,0x10,0xe8,0x10,0x7a,0x11, +/*00000fb0:*/0xba,0x11,0xdc,0x11,0xeb,0x11,0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12, +/*00000fc0:*/0x26,0x12,0xf7,0x11,0x01,0x12,0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12, +/*00000fd0:*/0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12,0x26,0x12,0xe8,0xe3,0x62,0x0a,0xe4,0x74, +/*00000fe0:*/0x03,0xe9,0x51,0x02,0xb1,0x01,0xe8,0xf3,0x62,0xe8,0x94,0x52,0xa8,0x88,0x74,0x03, +/*00000ff0:*/0xe8,0xef,0x4f,0xe9,0x37,0x02,0x51,0x0f,0xb6,0xd9,0x80,0xe3,0x03,0x2e,0x8a,0xa7, +/*00001000:*/0x09,0x10,0xe8,0x24,0x60,0x59,0xe9,0x24,0x02,0x09,0x00,0x0a,0x0b,0x8b,0xd8,0x80, +/*00001010:*/0xe1,0x03,0x0a,0xc9,0x75,0x03,0xe9,0x24,0x02,0x80,0xf9,0x01,0x75,0x03,0xe9,0x1c, +/*00001020:*/0x02,0x80,0xf9,0x02,0x74,0x03,0xe9,0x0c,0x02,0xe8,0x54,0x56,0x8b,0xec,0x89,0x5e, +/*00001030:*/0x10,0x89,0x4e,0x18,0xc7,0x46,0x1c,0x04,0x00,0xe9,0xf1,0x01,0x8b,0xec,0xb8,0x00, +/*00001040:*/0x70,0x88,0x66,0x19,0xb8,0xff,0x01,0x89,0x46,0x14,0xe8,0xff,0x62,0xb0,0x00,0x89, +/*00001050:*/0x46,0x10,0xe8,0xd9,0x62,0x89,0x46,0x04,0xe8,0xca,0x62,0x89,0x46,0x00,0xe9,0xcc, +/*00001060:*/0x01,0x8b,0xec,0x2e,0x0f,0xb6,0x06,0x0d,0x01,0x24,0x0f,0x89,0x46,0x18,0xe8,0x34, +/*00001070:*/0x46,0x89,0x56,0x14,0xb2,0x14,0xed,0x89,0x46,0x00,0x2e,0xa1,0x22,0x01,0x2e,0xa1, +/*00001080:*/0x22,0x01,0x89,0x46,0x04,0xe9,0xa5,0x01,0x8b,0xec,0xe8,0x77,0x62,0xc1,0xe8,0x03, +/*00001090:*/0x89,0x46,0x18,0xe8,0xa1,0x62,0x89,0x46,0x10,0xe8,0xa7,0x62,0x89,0x46,0x04,0x66, +/*000010a0:*/0xc1,0xe8,0x10,0x89,0x46,0x00,0xe8,0x6a,0x62,0x89,0x46,0x14,0xe8,0x6d,0x62,0x88, +/*000010b0:*/0x46,0x1c,0xe9,0x78,0x01,0x8b,0xec,0xe8,0x32,0xf9,0x88,0x46,0x18,0x8c,0x4e,0x14, +/*000010c0:*/0xc7,0x46,0x00,0x78,0x65,0xc7,0x46,0x04,0x6a,0x66,0xe9,0x60,0x01,0x8e,0xc2,0x8b, +/*000010d0:*/0xd8,0x57,0xb9,0x20,0x00,0x8b,0xfb,0x33,0xc0,0xf3,0xab,0x5f,0x8b,0xc7,0x24,0x07, +/*000010e0:*/0x8b,0xfb,0xe8,0x32,0xfd,0xe9,0x45,0x01,0x8e,0xc2,0x8b,0xd8,0x57,0x51,0xb9,0x20, +/*000010f0:*/0x00,0x8b,0xfb,0x33,0xc0,0xf3,0xab,0x59,0x5f,0x83,0xff,0x02,0x74,0x05,0x83,0xff, +/*00001100:*/0x06,0x75,0x08,0x83,0xec,0x12,0x8b,0xec,0xe8,0x2d,0x82,0x83,0xec,0x3e,0x8b,0xec, +/*00001110:*/0x53,0x57,0xe8,0x4d,0x51,0x50,0x83,0xff,0x00,0x75,0x04,0xb0,0x02,0xeb,0x20,0x83, +/*00001120:*/0xff,0x04,0x75,0x04,0xb0,0x20,0xeb,0x17,0x83,0xff,0x02,0x75,0x04,0xb0,0x08,0xeb, +/*00001130:*/0x0e,0x83,0xff,0x06,0x75,0x04,0xb0,0x80,0xeb,0x05,0x58,0x5f,0x5b,0xeb,0x28,0x8a, +/*00001140:*/0xe0,0xe8,0x0f,0x51,0xe8,0x4f,0xf5,0x58,0x8a,0xe0,0xe8,0x06,0x51,0x5b,0x5f,0x8a, +/*00001150:*/0x46,0x02,0x0a,0xc0,0x74,0x11,0x8b,0x46,0x24,0xab,0x8b,0x46,0x26,0xab,0x8b,0xf5, +/*00001160:*/0xb9,0x0f,0x00,0x16,0x1f,0xf3,0xa5,0x83,0xc4,0x3e,0x83,0xfb,0x02,0x74,0x05,0x83, +/*00001170:*/0xfb,0x06,0x75,0x03,0x83,0xc4,0x12,0xe9,0xb3,0x00,0x0a,0xed,0x75,0x25,0x80,0xe1, +/*00001180:*/0x07,0xe8,0x21,0x45,0xb2,0x2b,0xec,0x24,0xfc,0x0a,0xc1,0xee,0xe8,0xfc,0x50,0xa8, +/*00001190:*/0x02,0x74,0x03,0xe8,0xaf,0x00,0xe8,0xf2,0x50,0xa8,0x08,0x74,0x03,0xe8,0x33,0x88, +/*000011a0:*/0xe9,0x8a,0x00,0x80,0xfd,0x01,0x74,0x03,0xe9,0x8a,0x00,0xe8,0xf7,0x44,0xb2,0x2b, +/*000011b0:*/0xec,0x24,0x07,0x8b,0xec,0x88,0x46,0x18,0xeb,0x73,0x66,0xc1,0xc1,0x10,0x33,0xc9, +/*000011c0:*/0x66,0xc1,0xc1,0x10,0x81,0xf9,0x00,0x01,0x76,0x03,0xb9,0x00,0x01,0x8b,0xd8,0xe8, +/*000011d0:*/0xb6,0x4c,0x8b,0xec,0x89,0x5e,0x10,0x89,0x46,0x1c,0xeb,0x4c,0x8b,0xd8,0xe8,0xe6, +/*000011e0:*/0x61,0x8b,0xec,0x89,0x4e,0x18,0x89,0x46,0x1c,0xeb,0x3d,0x8b,0xd8,0xe8,0xf1,0xfa, +/*000011f0:*/0x8b,0xec,0x89,0x46,0x1c,0xeb,0x31,0xe8,0x9b,0x00,0x8b,0xec,0x89,0x4e,0x18,0xeb, +/*00001200:*/0x2c,0x0a,0xed,0x75,0x0c,0xe8,0x5a,0x50,0xd0,0xe8,0x8b,0xec,0x88,0x46,0x18,0xeb, +/*00001210:*/0x1c,0x80,0xfd,0x01,0x75,0x1f,0x8a,0xe1,0xd0,0xe4,0xe8,0xdb,0x4f,0x22,0xe1,0x74, +/*00001220:*/0x14,0xe8,0x2f,0x50,0xeb,0x07,0xeb,0x00,0x66,0x61,0x07,0x1f,0xc3,0x8b,0xec,0xc6, +/*00001230:*/0x46,0x1d,0x00,0xeb,0xf3,0x8b,0xec,0xc6,0x46,0x1d,0x01,0xeb,0xeb,0x8b,0xec,0xc6, +/*00001240:*/0x46,0x1d,0x02,0xeb,0xe3,0x80,0xf9,0x04,0x74,0x2b,0x0f,0xb6,0xd9,0xd1,0xe3,0x53, +/*00001250:*/0x2e,0x8a,0xa7,0x7c,0x12,0xe8,0x4d,0x44,0xb2,0x55,0xec,0x24,0xfc,0x0a,0xc4,0xee, +/*00001260:*/0x5b,0x2e,0x8a,0xa7,0x7d,0x12,0xb2,0x59,0xec,0x24,0x7f,0x0a,0xc4,0xee,0xe8,0x34, +/*00001270:*/0x4e,0xe8,0x6c,0x5d,0xc3,0xe8,0x1b,0x4e,0xe8,0x65,0x5d,0xc3,0x00,0x00,0x01,0x80, +/*00001280:*/0x02,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0xe8,0xe9,0xfc, +/*00001290:*/0xc3,0xee,0xc3,0xec,0xc3,0xf6,0xc1,0x01,0x74,0x08,0xe8,0xdd,0x63,0xb4,0x03,0xe8, +/*000012a0:*/0x42,0x4f,0xf6,0xc5,0x01,0x74,0x12,0xe8,0x03,0x64,0xb4,0x03,0xe8,0x2c,0x4f,0xa8, +/*000012b0:*/0x03,0x74,0x06,0xb8,0x00,0x08,0xe8,0x2b,0x4f,0xf6,0xc1,0x04,0x74,0x03,0xb8,0x00, +/*000012c0:*/0x04,0xf6,0xc1,0x08,0x74,0x16,0xb8,0x00,0x08,0xb7,0x02,0xe8,0x2a,0x4c,0x0a,0xdb, +/*000012d0:*/0x74,0x07,0xe8,0xf3,0x4d,0x75,0x02,0xb0,0x08,0xe8,0x08,0x4f,0x81,0xe1,0xc0,0x40, +/*000012e0:*/0xe8,0xc2,0x43,0xb2,0x20,0xed,0x25,0x3f,0xbf,0x0b,0xc1,0x25,0x7f,0xff,0xef,0xed, +/*000012f0:*/0x8b,0xc8,0x50,0x8a,0xc1,0x8a,0xe1,0x25,0x40,0x80,0xd0,0xc0,0xd0,0xcc,0x0a,0xc4, +/*00001300:*/0x80,0xe1,0x3f,0x0a,0xc8,0x58,0xc3,0x90,0x28,0x18,0x08,0x00,0x08,0x09,0x03,0x00, +/*00001310:*/0x02,0x63,0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00, +/*00001320:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001330:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00, +/*00001340:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x28,0x18,0x08,0x00,0x08,0x09,0x03,0x00, +/*00001350:*/0x02,0x63,0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00, +/*00001360:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001370:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00, +/*00001380:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x08,0x00,0x10,0x01,0x03,0x00, +/*00001390:*/0x02,0x63,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00, +/*000013a0:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000013b0:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00, +/*000013c0:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x08,0x00,0x10,0x01,0x03,0x00, +/*000013d0:*/0x02,0x63,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0xc7,0x06,0x07,0x00,0x00, +/*000013e0:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000013f0:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x08,0x00,0x0f,0x00,0x00, +/*00001400:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x28,0x18,0x08,0x00,0x40,0x09,0x03,0x00, +/*00001410:*/0x02,0x63,0x2d,0x27,0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00, +/*00001420:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,0xff,0x00,0x13,0x15,0x17,0x02, +/*00001430:*/0x04,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x03,0x00,0x00, +/*00001440:*/0x00,0x00,0x00,0x00,0x30,0x0f,0x00,0xff,0x28,0x18,0x08,0x00,0x40,0x09,0x03,0x00, +/*00001450:*/0x02,0x63,0x2d,0x27,0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00, +/*00001460:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xa2,0xff,0x00,0x13,0x15,0x17,0x02, +/*00001470:*/0x04,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x03,0x00,0x00, +/*00001480:*/0x00,0x00,0x00,0x00,0x30,0x0f,0x00,0xff,0x50,0x18,0x08,0x00,0x40,0x01,0x01,0x00, +/*00001490:*/0x06,0x63,0x5f,0x4f,0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0xc1,0x00,0x00,0x00,0x00, +/*000014a0:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xc2,0xff,0x00,0x17,0x17,0x17,0x17, +/*000014b0:*/0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x01,0x00,0x01,0x00,0x00, +/*000014c0:*/0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x00,0x03,0x00, +/*000014d0:*/0x03,0xa6,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00, +/*000014e0:*/0x00,0x00,0x83,0x85,0x5d,0x28,0x0d,0x63,0xba,0xa3,0xff,0x00,0x08,0x08,0x08,0x08, +/*000014f0:*/0x08,0x08,0x08,0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x00,0x0f,0x08,0x00, +/*00001500:*/0x00,0x00,0x00,0x00,0x10,0x0a,0x00,0xff,0x84,0x18,0x10,0x00,0x20,0x01,0x03,0x00, +/*00001510:*/0x62,0x63,0xa1,0x83,0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*00001520:*/0x00,0x00,0x9c,0x8e,0x8f,0x42,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001530:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001540:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x84,0x2b,0x08,0x00,0x40,0x01,0x03,0x00, +/*00001550:*/0x62,0x63,0xa1,0x83,0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x47,0x06,0x07,0x00,0x00, +/*00001560:*/0x00,0x00,0x83,0x85,0x5f,0x42,0x08,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001570:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001580:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x64,0x18,0x10,0x00,0xa0,0x00,0x03,0x00, +/*00001590:*/0x22,0x6f,0x7a,0x63,0x66,0x9b,0x6b,0x92,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*000015a0:*/0x00,0x00,0x9c,0x8e,0x8f,0x32,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000015b0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00, +/*000015c0:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x64,0x1d,0x10,0x00,0x20,0x00,0x03,0x00, +/*000015d0:*/0x22,0xef,0x7a,0x63,0x66,0x9b,0x6b,0x92,0x08,0x3e,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*000015e0:*/0x00,0x00,0xea,0x8f,0xdf,0x32,0x00,0xe7,0x04,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000015f0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00, +/*00001600:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00, +/*00001610:*/0x0a,0xe3,0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00, +/*00001620:*/0x00,0x00,0xea,0x8c,0xdf,0x28,0x00,0xe7,0x04,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001630:*/0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x01,0x00,0x0f,0x00,0x10, +/*00001640:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x28,0x18,0x08,0x00,0x20,0x09,0x0f,0x00, +/*00001650:*/0x06,0x63,0x2d,0x27,0x28,0x90,0x2b,0x80,0xbf,0x1f,0x00,0xc0,0x00,0x00,0x00,0x00, +/*00001660:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x00,0x96,0xb9,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001670:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x0f,0x00,0x00, +/*00001680:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x50,0x18,0x08,0x00,0x40,0x01,0x0f,0x00, +/*00001690:*/0x06,0x63,0x5f,0x4f,0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0xc0,0x00,0x00,0x00,0x00, +/*000016a0:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x00,0x96,0xb9,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000016b0:*/0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x01,0x00,0x0f,0x00,0x00, +/*000016c0:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x00,0x05,0x11,0x1c,0x08,0x0b,0x25,0x28, +/*000016d0:*/0x02,0x07,0x1b,0x20,0x0f,0x14,0x28,0x2c,0x0c,0x11,0x25,0x2a,0x14,0x1e,0x32,0x36, +/*000016e0:*/0x0f,0x13,0x27,0x2c,0x1b,0x20,0x34,0x39,0x06,0x0b,0x1f,0x24,0x13,0x18,0x2c,0x30, +/*000016f0:*/0x09,0x0d,0x21,0x26,0x15,0x1a,0x2e,0x33,0x13,0x17,0x2b,0x30,0x1f,0x24,0x38,0x3d, +/*00001700:*/0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18, +/*00001710:*/0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f, +/*00001720:*/0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18, +/*00001730:*/0x00,0x05,0x11,0x1c,0x08,0x0b,0x14,0x18,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f, +/*00001740:*/0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x50,0x18,0x0e,0x00,0x80,0x01,0x0f,0x00, +/*00001750:*/0x06,0xa2,0x5f,0x4f,0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x40,0x00,0x00,0x00,0x00, +/*00001760:*/0x00,0x00,0x83,0x85,0x5d,0x28,0x0f,0x63,0xba,0xe3,0xff,0x00,0x08,0x00,0x00,0x18, +/*00001770:*/0x18,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00,0x0b,0x00,0x05,0x00,0x00, +/*00001780:*/0x00,0x00,0x00,0x00,0x00,0x05,0x05,0xff,0x50,0x18,0x0e,0x00,0x80,0x01,0x0f,0x00, +/*00001790:*/0x06,0xa3,0x5f,0x4f,0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x40,0x00,0x00,0x00,0x00, +/*000017a0:*/0x00,0x00,0x83,0x85,0x5d,0x28,0x0f,0x63,0xba,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000017b0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00, +/*000017c0:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x28,0x18,0x0e,0x00,0x08,0x09,0x03,0x00, +/*000017d0:*/0x02,0xa3,0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00, +/*000017e0:*/0x00,0x00,0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000017f0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001800:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x28,0x18,0x0e,0x00,0x08,0x09,0x03,0x00, +/*00001810:*/0x02,0xa3,0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00, +/*00001820:*/0x00,0x00,0x83,0x85,0x5d,0x14,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001830:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001840:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x01,0x03,0x00, +/*00001850:*/0x02,0xa3,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00, +/*00001860:*/0x00,0x00,0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001870:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001880:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x0e,0x00,0x10,0x01,0x03,0x00, +/*00001890:*/0x02,0xa3,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4d,0x0b,0x0c,0x00,0x00, +/*000018a0:*/0x00,0x00,0x83,0x85,0x5d,0x28,0x1f,0x63,0xba,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000018b0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*000018c0:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x28,0x18,0x10,0x00,0x08,0x08,0x03,0x00, +/*000018d0:*/0x02,0x67,0x2d,0x27,0x28,0x90,0x2b,0xa0,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*000018e0:*/0x00,0x00,0x9c,0x8e,0x8f,0x14,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000018f0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00, +/*00001900:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x10,0x00,0x10,0x00,0x03,0x00, +/*00001910:*/0x02,0x67,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*00001920:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x1f,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001930:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x0c,0x00,0x0f,0x08,0x00, +/*00001940:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x50,0x18,0x10,0x00,0x10,0x00,0x03,0x00, +/*00001950:*/0x02,0x66,0x5f,0x4f,0x50,0x82,0x55,0x81,0xbf,0x1f,0x00,0x4f,0x0d,0x0e,0x00,0x00, +/*00001960:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x0f,0x96,0xb9,0xa3,0xff,0x00,0x08,0x08,0x08,0x08, +/*00001970:*/0x08,0x08,0x08,0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x00,0x0f,0x08,0x00, +/*00001980:*/0x00,0x00,0x00,0x00,0x10,0x0a,0x00,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00, +/*00001990:*/0x06,0xe3,0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00, +/*000019a0:*/0x00,0x00,0xea,0x8c,0xdf,0x28,0x00,0xe7,0x04,0xc3,0xff,0x00,0x3f,0x3f,0x3f,0x3f, +/*000019b0:*/0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x01,0x00,0x0f,0x00,0x00, +/*000019c0:*/0x00,0x00,0x00,0x00,0x00,0x05,0x01,0xff,0x50,0x1d,0x10,0x00,0xa0,0x01,0x0f,0x00, +/*000019d0:*/0x06,0xe3,0x5f,0x4f,0x50,0x82,0x54,0x80,0x0b,0x3e,0x00,0x40,0x00,0x00,0x00,0x00, +/*000019e0:*/0x00,0x00,0xea,0x8c,0xdf,0x28,0x00,0xe7,0x04,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*000019f0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x00, +/*00001a00:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x28,0x18,0x08,0x00,0x20,0x01,0x0f,0x00, +/*00001a10:*/0x0e,0x63,0x5f,0x4f,0x50,0x82,0x54,0x80,0xbf,0x1f,0x00,0x41,0x00,0x00,0x00,0x00, +/*00001a20:*/0x00,0x00,0x9c,0x8e,0x8f,0x28,0x40,0x96,0xb9,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001a30:*/0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x41,0x00,0x0f,0x00,0x00, +/*00001a40:*/0x00,0x00,0x00,0x00,0x40,0x05,0x0f,0xff,0x84,0x2a,0x08,0x00,0x40,0x01,0x03,0x00, +/*00001a50:*/0x62,0x63,0xa1,0x83,0x86,0x82,0x8a,0x9b,0xbf,0x1f,0x00,0x47,0x06,0x07,0x00,0x00, +/*00001a60:*/0x00,0x00,0x83,0x85,0x57,0x42,0x08,0x6b,0xb2,0xa3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001a70:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x08,0x00,0x0f,0x00,0x00, +/*00001a80:*/0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0xff,0x64,0x2a,0x10,0x00,0xa0,0x01,0x0f,0x00, +/*00001a90:*/0x26,0xef,0x7f,0x63,0x64,0x82,0x6a,0x1a,0x71,0xf0,0x00,0x60,0x00,0x00,0x00,0x00, +/*00001aa0:*/0x00,0x00,0x57,0x8b,0x57,0x32,0x00,0x58,0x71,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001ab0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x40, +/*00001ac0:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x80,0x36,0x10,0x00,0xa0,0x01,0x0f,0x00, +/*00001ad0:*/0x26,0xef,0xa3,0x7f,0x80,0x86,0x84,0x95,0x23,0xfd,0x00,0x60,0x00,0x00,0x00,0x00, +/*00001ae0:*/0x05,0xff,0x01,0x87,0xff,0x40,0x00,0x00,0x23,0xe3,0xff,0x00,0x01,0x02,0x03,0x04, +/*00001af0:*/0x05,0x14,0x07,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x01,0x00,0x0f,0x00,0x40, +/*00001b00:*/0x00,0x00,0x00,0x00,0x00,0x05,0x0f,0xff,0x0e,0xe8,0x01,0x00,0xc3,0x80,0xfc,0xa0, +/*00001b10:*/0x0f,0x84,0x65,0xf4,0x80,0xfc,0x4f,0x0f,0x84,0xb0,0x2f,0x2e,0xff,0x36,0x70,0x0f, +/*00001b20:*/0xeb,0x15,0xfb,0xfc,0x80,0xfc,0xa0,0x0f,0x84,0x47,0xf4,0x80,0xfc,0x4f,0x0f,0x84, +/*00001b30:*/0xa0,0x2f,0x2e,0xff,0x36,0x6e,0x0f,0x1e,0x06,0x66,0x60,0x50,0x0f,0xb6,0xc4,0xd1, +/*00001b40:*/0xe0,0x3d,0x3a,0x00,0x73,0x08,0x8b,0xf0,0x58,0x2e,0xff,0xa4,0x5c,0x1b,0x58,0x66, +/*00001b50:*/0x61,0x07,0x1f,0xcd,0x42,0xc3,0x66,0x61,0x07,0x1f,0xc3,0x90,0xd0,0x1b,0x08,0x89, +/*00001b60:*/0x21,0x89,0x3e,0x89,0x44,0x1d,0xc9,0x7e,0xf6,0x7e,0xa4,0x7f,0x33,0x80,0xd2,0x81, +/*00001b70:*/0xd6,0x81,0xdb,0x85,0xb2,0x86,0x44,0x87,0xba,0x87,0x5a,0x89,0xbd,0x89,0x94,0x8c, +/*00001b80:*/0x04,0x22,0x24,0x91,0x56,0x1b,0x56,0x1b,0x56,0x1b,0x56,0x1b,0x56,0x1b,0x56,0x1b, +/*00001b90:*/0xf8,0x91,0xfe,0x3d,0x4d,0x3f,0x08,0x13,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001ba0:*/0x00,0x00,0x00,0x00,0x00,0x00,0xb6,0x1b,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001bb0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x00,0xfc,0x92,0x00,0xc0,0x00,0x00,0x00,0x00, +/*00001bc0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00001bd0:*/0xe8,0xb8,0x5c,0x80,0x26,0x87,0x04,0xf3,0x50,0x24,0x7f,0x8a,0xe0,0xe8,0x2d,0x03, +/*00001be0:*/0x58,0x8a,0xe0,0x24,0x7f,0xe8,0xdf,0x46,0x3c,0x07,0x7e,0x2e,0x3b,0xd3,0x75,0x2a, +/*00001bf0:*/0x8d,0x36,0x52,0x48,0x0e,0x1f,0x83,0x3c,0xff,0x74,0x1c,0x38,0x44,0x02,0x74,0x05, +/*00001c00:*/0x83,0xc6,0x09,0xeb,0xf1,0x8b,0x5c,0x02,0x53,0x8b,0x1c,0x80,0xe4,0x80,0x0a,0xfc, +/*00001c10:*/0xb8,0x02,0x4f,0xe8,0xf2,0xfe,0x58,0xe9,0x3c,0xff,0x50,0xe8,0x62,0x46,0x0a,0xc0, +/*00001c20:*/0x75,0x04,0x58,0xe9,0x30,0xff,0xba,0xcc,0x03,0xec,0xb2,0xb4,0xb1,0x30,0x26,0xf6, +/*00001c30:*/0x47,0x09,0x01,0x74,0x0c,0xb2,0xd4,0xb1,0x20,0xa8,0x01,0x75,0x47,0xb5,0x09,0xeb, +/*00001c40:*/0x06,0xa8,0x01,0x74,0x3f,0xb5,0x0b,0xe8,0xd4,0x75,0x0a,0xff,0x75,0x0b,0x80,0x26, +/*00001c50:*/0x88,0x04,0xf0,0x08,0x2e,0x88,0x04,0xeb,0x2b,0x58,0x80,0x0e,0x87,0x04,0x08,0x80, +/*00001c60:*/0x26,0x10,0x04,0xcf,0x08,0x0e,0x10,0x04,0x89,0x16,0x63,0x04,0xc7,0x06,0x85,0x04, +/*00001c70:*/0x08,0x00,0xc6,0x06,0x84,0x04,0x18,0xc7,0x06,0x0c,0x01,0x0a,0x25,0x8c,0x0e,0x0e, +/*00001c80:*/0x01,0xe9,0xcb,0xfe,0x80,0x26,0x10,0x04,0xcf,0x08,0x0e,0x10,0x04,0x58,0x80,0xe4, +/*00001c90:*/0x80,0x80,0x26,0x87,0x04,0x7f,0x08,0x26,0x87,0x04,0x8a,0xe0,0x50,0xe8,0x65,0x5f, +/*00001ca0:*/0xe8,0x84,0x53,0xe8,0x0a,0x05,0x75,0x11,0xe8,0xde,0x04,0x74,0x0c,0xe8,0xe6,0x04, +/*00001cb0:*/0x75,0x07,0x32,0xc9,0xe8,0x25,0x56,0xeb,0x03,0xe8,0xb9,0x6f,0x58,0x88,0x26,0x49, +/*00001cc0:*/0x04,0xe8,0x45,0x02,0x55,0x83,0xec,0x44,0x8b,0xec,0x50,0x53,0x51,0x55,0xb9,0x44, +/*00001cd0:*/0x00,0xd1,0xe9,0x33,0xc0,0x89,0x46,0x00,0x83,0xc5,0x02,0xe2,0xf8,0x5d,0x55,0xb9, +/*00001ce0:*/0x19,0x00,0x26,0x8a,0x47,0x0a,0x88,0x46,0x00,0x43,0x45,0xe2,0xf5,0x5d,0x59,0x5b, +/*00001cf0:*/0xb8,0xd6,0x09,0x26,0xf6,0x47,0x09,0x04,0x74,0x03,0xb8,0x10,0x0b,0x89,0x46,0x1a, +/*00001d00:*/0x58,0xe8,0x3d,0x47,0x50,0xe8,0xfd,0x5e,0xe8,0x0d,0x2a,0x58,0xe8,0x3e,0x00,0xe8, +/*00001d10:*/0x22,0x71,0xe8,0x22,0x03,0xe8,0xdf,0x02,0x06,0x53,0xe8,0xb3,0x72,0x5b,0x07,0xe8, +/*00001d20:*/0xd8,0x29,0xb9,0x01,0x00,0xe8,0x4d,0x6f,0xe8,0xd1,0x5e,0xe8,0xc9,0x5e,0xe8,0x72, +/*00001d30:*/0x04,0x75,0x00,0xe8,0x3b,0x7c,0x75,0x02,0xeb,0x03,0xe8,0xa5,0x42,0x83,0xc4,0x44, +/*00001d40:*/0x5d,0xe9,0x12,0xfe,0x8b,0xec,0xc6,0x46,0x1d,0x00,0xe9,0x09,0xfe,0x50,0xe8,0x2f, +/*00001d50:*/0x4f,0xe8,0x4f,0x00,0x58,0xe8,0x2a,0x00,0xe8,0xda,0x00,0xe8,0x13,0x7c,0x75,0x05, +/*00001d60:*/0xe8,0x1b,0x7c,0x74,0x11,0xe8,0xc7,0x41,0xe8,0x17,0x00,0xe8,0xcf,0x41,0x55,0x83, +/*00001d70:*/0xc5,0x19,0xe8,0xd8,0x7f,0x5d,0xe8,0x51,0x00,0x53,0xe8,0x21,0x06,0x5b,0xe8,0x42, +/*00001d80:*/0x4f,0xc3,0x53,0x8b,0xdd,0x8b,0x16,0x63,0x04,0xb9,0x19,0x00,0xb8,0x11,0x30,0xef, +/*00001d90:*/0x32,0xc0,0x36,0x8a,0x27,0xef,0x43,0xfe,0xc0,0xe2,0xf7,0x5b,0x80,0xc2,0x06,0x32, +/*00001da0:*/0xc0,0xee,0xc3,0x53,0x83,0xc3,0x05,0xba,0xc4,0x03,0xb8,0x00,0x01,0xef,0xb9,0x04, +/*00001db0:*/0x00,0xb0,0x01,0x26,0x8a,0x27,0x80,0xe4,0x1f,0xef,0x43,0xfe,0xc0,0xe2,0xf4,0x5b, +/*00001dc0:*/0xe8,0x89,0x00,0xb2,0xc4,0xb8,0x00,0x03,0xef,0xc3,0x8b,0xf3,0x83,0xc6,0x23,0xba, +/*00001dd0:*/0xda,0x03,0x26,0xf6,0x47,0x09,0x01,0x75,0x02,0xb2,0xba,0xf6,0x06,0x89,0x04,0x08, +/*00001de0:*/0x74,0x1d,0x83,0xc6,0x10,0xec,0xb9,0x04,0x00,0xb4,0x10,0xb2,0xc0,0x80,0xfc,0x11, +/*00001df0:*/0x74,0x07,0x8a,0xc4,0xee,0x26,0x8a,0x04,0xee,0x46,0xfe,0xc4,0xe2,0xef,0xc3,0x53, +/*00001e00:*/0xec,0x8b,0xde,0xb9,0x14,0x00,0x32,0xe4,0xb2,0xc0,0x8a,0xc4,0xee,0xfe,0xc4,0x26, +/*00001e10:*/0x8a,0x07,0xee,0x43,0xe2,0xf4,0x8a,0xc4,0xee,0x32,0xc0,0xee,0x1e,0x06,0xe8,0x6a, +/*00001e20:*/0x5a,0xe8,0xea,0x5d,0x0b,0xed,0x74,0x09,0x1f,0x1e,0xb9,0x10,0x00,0xf3,0xa4,0x46, +/*00001e30:*/0xa4,0x07,0x1f,0x5b,0xc3,0x53,0x83,0xc3,0x37,0xb9,0x09,0x00,0x32,0xc0,0xba,0xce, +/*00001e40:*/0x03,0x26,0x8a,0x27,0xef,0x43,0xfe,0xc0,0xe2,0xf7,0x5b,0xc3,0x81,0xfb,0x88,0x1a, +/*00001e50:*/0x75,0x05,0xb8,0xa0,0x0f,0xeb,0x3a,0x81,0xfb,0xc8,0x1a,0x75,0x05,0xb8,0x64,0x19, +/*00001e60:*/0xeb,0x2f,0x1e,0x06,0x1f,0xe8,0x6e,0x00,0x1f,0x8a,0xc8,0x8a,0xe8,0x33,0xd2,0x53, +/*00001e70:*/0x8a,0xd9,0x80,0xe3,0x0f,0x32,0xff,0xd1,0xe3,0x2e,0x8b,0x87,0xf8,0x05,0x5b,0xf6, +/*00001e80:*/0xc1,0x10,0x74,0x02,0xd1,0xe8,0xba,0x18,0x00,0x80,0xfd,0x01,0x76,0x03,0xba,0x1a, +/*00001e90:*/0x00,0x8b,0xf8,0x26,0xf6,0x47,0x37,0x10,0x74,0x05,0xba,0x1a,0x00,0xd1,0xe7,0x8a, +/*00001ea0:*/0xcd,0x83,0xfa,0x19,0x72,0x14,0x50,0xe8,0x4a,0x42,0xa8,0x01,0x58,0x75,0x0b,0x53, +/*00001eb0:*/0x8b,0xd8,0xb5,0x03,0xe8,0xc9,0x47,0xb1,0x03,0x5b,0x26,0x8a,0x47,0x09,0x24,0xf3, +/*00001ec0:*/0xc0,0xe1,0x02,0x80,0xe1,0x0c,0x0a,0xc1,0xba,0xc2,0x03,0xee,0xa8,0x08,0x74,0x05, +/*00001ed0:*/0x8b,0xc7,0xe8,0x02,0x50,0xc3,0x8a,0x67,0x05,0x8a,0x47,0x09,0x25,0x0c,0xc0,0xc1, +/*00001ee0:*/0xe8,0x02,0x0c,0x00,0x8a,0x6f,0x08,0xf6,0xc5,0x80,0x74,0x06,0x34,0x08,0x24,0x0f, +/*00001ef0:*/0x0a,0xc4,0xf6,0xc5,0x40,0x74,0x06,0x34,0x04,0x24,0x0f,0x0a,0xc4,0xf6,0xc5,0x20, +/*00001f00:*/0x74,0x02,0x24,0x0f,0xc3,0xe8,0xe4,0x7f,0xc3,0x8a,0x26,0x49,0x04,0xbb,0x08,0x13, +/*00001f10:*/0x0e,0x07,0x8b,0xd3,0x0a,0xe4,0x7d,0x01,0xc3,0x50,0xe8,0x02,0x00,0x58,0xc3,0x33, +/*00001f20:*/0xf6,0x80,0xfc,0x03,0x7f,0x3c,0x4a,0xf6,0x06,0x89,0x04,0x10,0x75,0x20,0xa0,0x88, +/*00001f30:*/0x04,0x24,0x0f,0x3c,0x02,0x7e,0x24,0x3c,0x08,0x74,0x20,0x3c,0x06,0x74,0x1c,0x3c, +/*00001f40:*/0x07,0x74,0x18,0xb0,0x40,0xf6,0xe4,0x03,0xd8,0x81,0xc3,0xc0,0x04,0xc3,0xb0,0x40, +/*00001f50:*/0xd0,0xec,0xf6,0xe4,0x03,0xd8,0x81,0xc3,0xc0,0x05,0xc3,0xb0,0x40,0xf6,0xe4,0x03, +/*00001f60:*/0xd8,0xc3,0x80,0xfc,0x07,0x75,0x11,0xf6,0x06,0x89,0x04,0x10,0x75,0x05,0x81,0xc3, +/*00001f70:*/0xc0,0x01,0xc3,0x81,0xc3,0x40,0x06,0xc3,0xbf,0x84,0x1f,0xbe,0xba,0x1f,0x33,0xc9, +/*00001f80:*/0xe8,0xa0,0x00,0xc3,0x04,0x00,0x01,0x05,0x40,0x01,0x06,0x80,0x01,0x0d,0x40,0x03, +/*00001f90:*/0x0e,0x80,0x03,0x0f,0x40,0x04,0x10,0x80,0x04,0x11,0x80,0x06,0x12,0xc0,0x06,0x13, +/*00001fa0:*/0x00,0x07,0x62,0x00,0x03,0x21,0x80,0x02,0x22,0xc0,0x02,0x23,0x00,0x02,0x33,0x40, +/*00001fb0:*/0x02,0x6a,0x80,0x07,0x55,0xc0,0x07,0x32,0x40,0x07,0xf6,0x06,0x89,0x04,0x02,0x74, +/*00001fc0:*/0x19,0xc7,0x06,0x87,0x04,0x62,0xfb,0xc6,0x06,0x8a,0x04,0x0d,0xe8,0xfe,0x26,0x0a, +/*00001fd0:*/0xc0,0x74,0x1e,0xc6,0x06,0x88,0x04,0xf9,0xeb,0x17,0xc7,0x06,0x87,0x04,0x60,0xf9, +/*00001fe0:*/0xc6,0x06,0x8a,0x04,0x0b,0xe8,0xf0,0x26,0x0a,0xc0,0x74,0x05,0xc6,0x06,0x88,0x04, +/*00001ff0:*/0xfb,0x80,0x0e,0x89,0x04,0x10,0xc3,0x53,0x8a,0x1e,0x49,0x04,0x80,0xfb,0x07,0x7f, +/*00002000:*/0x10,0x32,0xff,0xd1,0xe3,0x2e,0x8b,0x87,0x13,0x20,0xa2,0x65,0x04,0x88,0x26,0x66, +/*00002010:*/0x04,0x5b,0xc3,0x2c,0x30,0x28,0x30,0x2d,0x30,0x29,0x30,0x2a,0x30,0x2e,0x30,0x1e, +/*00002020:*/0x3f,0x29,0x30,0x2e,0x38,0x25,0x75,0x07,0x2e,0x03,0x5d,0x01,0x33,0xf6,0xc3,0x83, +/*00002030:*/0xc7,0x03,0x3b,0xfe,0x75,0xed,0xc3,0x1e,0x06,0xe8,0x4f,0x58,0xf6,0x06,0x87,0x04, +/*00002040:*/0x80,0x75,0x53,0x83,0x3e,0x4c,0x04,0x00,0x74,0x4c,0xa0,0x49,0x04,0xb9,0x00,0x40, +/*00002050:*/0x2e,0x8b,0x3e,0x56,0x56,0x26,0xf6,0x47,0x33,0x01,0x75,0x0e,0x26,0xf6,0x47,0x09, +/*00002060:*/0x01,0x75,0x2a,0x2e,0x8b,0x3e,0x54,0x56,0xeb,0x23,0x3c,0x06,0x7e,0x1b,0x2e,0x8b, +/*00002070:*/0x3e,0x52,0x56,0x26,0x8a,0x67,0x37,0xbe,0x66,0x21,0xb9,0x02,0x00,0xf6,0xc4,0x40, +/*00002080:*/0x75,0x17,0xf6,0xc4,0x30,0x75,0x0f,0xb5,0x80,0x33,0xc0,0xeb,0x03,0xb8,0x20,0x07, +/*00002090:*/0x8e,0xc7,0x33,0xff,0xf3,0xab,0x07,0x1f,0xc3,0x8e,0xc7,0x32,0xe4,0x50,0x51,0x8a, +/*000020a0:*/0xec,0xff,0xd6,0x33,0xff,0x33,0xc0,0xb9,0x00,0x80,0xf3,0xab,0x59,0x58,0x80,0xc4, +/*000020b0:*/0x02,0xe2,0xea,0x32,0xed,0xff,0xd6,0xeb,0xdd,0x50,0xb0,0x6a,0x80,0xfd,0x6a,0x74, +/*000020c0:*/0x0c,0xb0,0x55,0x80,0xfd,0x55,0x74,0x05,0x58,0xb8,0xff,0xff,0xc3,0x32,0xe4,0xe8, +/*000020d0:*/0x36,0xfa,0x58,0x33,0xc0,0xc3,0x50,0x52,0xe8,0xca,0x35,0xb2,0x10,0xec,0x24,0xf7, +/*000020e0:*/0xf6,0xc4,0x40,0x74,0x02,0x0c,0x08,0xee,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xb5,0x35, +/*000020f0:*/0xb2,0x10,0xec,0xa8,0x08,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xa8,0x35,0xb2,0x10,0xec, +/*00002100:*/0xa8,0x04,0x5a,0x58,0xc3,0x52,0xba,0x3c,0x00,0xe8,0x8b,0x35,0xee,0x83,0xc2,0x02, +/*00002110:*/0xfe,0xc0,0xee,0x5a,0xc3,0x52,0xba,0x38,0x00,0xeb,0xee,0x52,0xba,0x3c,0x00,0xe8, +/*00002120:*/0x75,0x35,0xec,0x02,0xc4,0xeb,0xe5,0x52,0xba,0x38,0x00,0xeb,0xf2,0x52,0xba,0x3c, +/*00002130:*/0x00,0xc0,0xe0,0x02,0xe8,0x60,0x35,0xee,0x83,0xc2,0x02,0x04,0x04,0xee,0x5a,0xc3, +/*00002140:*/0x52,0xba,0x38,0x00,0xeb,0xeb,0x52,0xba,0x3c,0x00,0xe8,0x4a,0x35,0xec,0xc0,0xe4, +/*00002150:*/0x02,0x02,0xc4,0xeb,0xe2,0x52,0xba,0x38,0x00,0xeb,0xef,0x8a,0xc5,0xe8,0xb5,0xff, +/*00002160:*/0x8a,0xc5,0xe8,0xa0,0xff,0xc3,0x8a,0xc5,0xe8,0xd5,0xff,0x8a,0xc5,0xe8,0xbd,0xff, +/*00002170:*/0xc3,0x50,0x52,0x8a,0xf2,0x8a,0xc2,0xe8,0xb3,0xff,0x8a,0xc6,0xe8,0xc1,0xff,0x5a, +/*00002180:*/0x58,0xc3,0x50,0x52,0xc0,0xea,0x04,0xeb,0xec,0x50,0x52,0xe8,0x17,0x35,0xb2,0x53, +/*00002190:*/0xec,0xa8,0x01,0x5a,0x58,0xc3,0x50,0x52,0xe8,0x0a,0x35,0xb2,0x10,0xec,0xa8,0x10, +/*000021a0:*/0x5a,0x58,0xc3,0x50,0x52,0xe8,0xfd,0x34,0xb2,0x10,0xec,0xa8,0x80,0x5a,0x58,0xc3, +/*000021b0:*/0x50,0x51,0x52,0xe8,0xef,0x34,0xb2,0x10,0xec,0x24,0x7f,0xee,0xb2,0x57,0xec,0x8a, +/*000021c0:*/0xd8,0xe8,0x87,0x3d,0x72,0x08,0xe8,0x66,0x3d,0xb9,0x54,0x02,0xeb,0x06,0xe8,0x6c, +/*000021d0:*/0x3d,0xb9,0x08,0x02,0xb2,0x00,0x66,0x33,0xc0,0x8b,0xc1,0x66,0xef,0xb2,0x06,0x52, +/*000021e0:*/0xec,0xfe,0xc8,0x8a,0xe0,0x8a,0xc8,0xe8,0xfd,0x56,0xb0,0x12,0xef,0x5a,0xec,0x38, +/*000021f0:*/0xc1,0x9c,0x74,0x06,0xb2,0x10,0xec,0x0c,0x80,0xee,0xb2,0x57,0x8a,0xc3,0xee,0x9d, +/*00002200:*/0x5a,0x59,0x58,0xc3,0xe8,0x84,0x56,0x80,0xfb,0x10,0x75,0x03,0xe9,0x54,0x01,0x80, +/*00002210:*/0xfb,0x20,0x75,0x03,0xe9,0x77,0x01,0x80,0xfb,0x32,0x75,0x20,0x8a,0xe0,0xe8,0x84, +/*00002220:*/0x34,0xb2,0xe1,0xec,0x0c,0x01,0x24,0xfd,0xee,0x0a,0xe4,0x74,0x09,0xfe,0xcc,0x75, +/*00002230:*/0x08,0x24,0xfe,0x0c,0x02,0xee,0xe9,0xba,0x00,0xe9,0x1a,0xf9,0x80,0xfb,0x30,0x74, +/*00002240:*/0x03,0xe9,0x96,0x00,0x50,0xe8,0xd6,0x6f,0x8a,0xef,0xba,0xcc,0x03,0xec,0x8a,0xc8, +/*00002250:*/0x58,0x0a,0xc0,0x75,0x30,0xb7,0x08,0xf6,0xc1,0x01,0x75,0x12,0x0a,0xed,0x75,0x0b, +/*00002260:*/0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x75,0x10,0xb7,0x02,0xe9,0x8b,0x00,0xa0,0x10, +/*00002270:*/0x04,0x24,0x30,0x3c,0x30,0x75,0x02,0xb7,0x02,0x80,0x26,0x89,0x04,0x6f,0x80,0x0e, +/*00002280:*/0x89,0x04,0x80,0xeb,0x36,0x3c,0x01,0x75,0x41,0x80,0x26,0x89,0x04,0x6f,0xb7,0x09, +/*00002290:*/0xf6,0xc1,0x01,0x75,0x15,0xb7,0x0b,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x74,0x1b, +/*000022a0:*/0xb7,0x09,0x0a,0xed,0x74,0x15,0xb7,0x05,0xeb,0x11,0xa0,0x10,0x04,0x24,0x30,0x3c, +/*000022b0:*/0x30,0x75,0x08,0xb7,0x0b,0x0a,0xed,0x74,0x02,0xb7,0x03,0x8a,0x1e,0x88,0x04,0x80, +/*000022c0:*/0xe3,0xf0,0x0a,0xdf,0x88,0x1e,0x88,0x04,0xeb,0x29,0x3c,0x02,0x75,0x2b,0x80,0x26, +/*000022d0:*/0x89,0x04,0x6f,0x80,0x0e,0x89,0x04,0x10,0xeb,0xb4,0x80,0xfb,0x31,0x75,0x1d,0x0a, +/*000022e0:*/0xc0,0x74,0x0b,0x3c,0x01,0x75,0x0c,0x80,0x0e,0x89,0x04,0x08,0xeb,0x05,0x80,0x26, +/*000022f0:*/0x89,0x04,0xf7,0x8b,0xec,0xc6,0x46,0x1c,0x12,0xe9,0x5a,0xf8,0x80,0xfb,0x33,0x75, +/*00002300:*/0x16,0x3c,0x00,0x74,0x0b,0x3c,0x01,0x75,0xea,0x80,0x26,0x89,0x04,0xfd,0xeb,0xe3, +/*00002310:*/0x80,0x0e,0x89,0x04,0x02,0xeb,0xdc,0x80,0xfb,0x34,0x75,0x19,0x3c,0x00,0x75,0x07, +/*00002320:*/0x80,0x26,0x87,0x04,0xfe,0xeb,0xcc,0x3c,0x01,0x75,0x07,0x80,0x0e,0x87,0x04,0x01, +/*00002330:*/0xeb,0xc1,0xe9,0x21,0xf8,0x80,0xfb,0x36,0x75,0x26,0xbb,0x20,0xff,0x3c,0x01,0x74, +/*00002340:*/0x09,0xbb,0x00,0xdf,0x3c,0x00,0x74,0x02,0xeb,0xa9,0xe8,0x02,0x00,0xeb,0xa4,0x9c, +/*00002350:*/0xfa,0xba,0xc4,0x03,0xb0,0x01,0xee,0x42,0xec,0x22,0xc7,0x0a,0xc3,0xee,0x9d,0xc3, +/*00002360:*/0xe9,0xf3,0xf7,0xb3,0x03,0xb7,0x00,0xba,0xcc,0x03,0xec,0xa8,0x01,0x75,0x02,0xb7, +/*00002370:*/0x01,0xa0,0x88,0x04,0x8a,0xe0,0xb1,0x04,0xd2,0xec,0x25,0x0f,0x0f,0x8b,0xc8,0x8b, +/*00002380:*/0xec,0x89,0x5e,0x10,0x89,0x4e,0x18,0xc6,0x46,0x1c,0x12,0xe9,0xc8,0xf7,0x9c,0xfa, +/*00002390:*/0xc7,0x06,0x14,0x00,0x57,0x77,0x8c,0x0e,0x16,0x00,0x9d,0xe9,0xb8,0xf7,0xf6,0x06, +/*000023a0:*/0x89,0x04,0x08,0x74,0x01,0xc3,0x55,0x83,0xec,0x02,0x8b,0xec,0xe8,0x30,0x3c,0xba, +/*000023b0:*/0xc4,0x03,0xb0,0x01,0x26,0x8a,0x67,0x05,0x50,0x80,0xcc,0x20,0xef,0xb2,0xc8,0xec, +/*000023c0:*/0xb0,0xff,0xb2,0xc6,0xe8,0x3f,0x01,0xb2,0xc8,0x80,0x3e,0x63,0x04,0xb4,0x75,0x41, +/*000023d0:*/0xbe,0xd5,0x24,0xb9,0x40,0x00,0x33,0xdb,0x8a,0xc3,0x9c,0xfa,0xe8,0x27,0x01,0x8b, +/*000023e0:*/0xfb,0xc1,0xef,0x03,0x83,0xe7,0x03,0x03,0xfe,0x2e,0x8a,0x05,0x42,0xe8,0x16,0x01, +/*000023f0:*/0x2e,0x8a,0x45,0x04,0xe8,0x0f,0x01,0x2e,0x8a,0x45,0x08,0xe8,0x08,0x01,0x9d,0xfe, +/*00002400:*/0xc3,0x4a,0xe2,0xd4,0xba,0xc4,0x03,0x58,0xef,0xe8,0xd4,0x3b,0x83,0xc4,0x02,0x5d, +/*00002410:*/0xc3,0x26,0x8a,0x47,0x2b,0xf6,0x06,0x89,0x04,0x06,0x74,0x38,0xb9,0xf8,0x00,0xbf, +/*00002420:*/0xbd,0x42,0x3c,0x08,0x74,0x11,0xb9,0x40,0x00,0xbf,0xc8,0x16,0x3c,0x38,0x74,0x07, +/*00002430:*/0x3c,0x3f,0x74,0x03,0xbf,0x08,0x17,0x33,0xdb,0x8a,0xc3,0xfa,0xe8,0xc7,0x00,0x2e, +/*00002440:*/0x8a,0x01,0x42,0xe8,0xc0,0x00,0xe8,0xbd,0x00,0xe8,0xba,0x00,0xfb,0xfe,0xc3,0x4a, +/*00002450:*/0xe2,0xe7,0xeb,0xb0,0x3c,0x08,0x74,0x25,0x3c,0x38,0x74,0x2f,0x3c,0x3f,0x74,0x2b, +/*00002460:*/0xb9,0x08,0x00,0x33,0xdb,0x51,0xb9,0x08,0x00,0xbf,0xbd,0x43,0xf7,0xc3,0x10,0x00, +/*00002470:*/0x74,0x03,0xbf,0xd5,0x43,0xe8,0x69,0x00,0x59,0xe2,0xea,0xeb,0x87,0xbf,0xbd,0x43, +/*00002480:*/0xb9,0x00,0x01,0x33,0xdb,0xe8,0x59,0x00,0xe9,0x79,0xff,0xb9,0x40,0x00,0x33,0xdb, +/*00002490:*/0x51,0xe8,0x0d,0x00,0x8a,0xc3,0xe8,0x5b,0x67,0xfe,0xc3,0x59,0xe2,0xf2,0xe9,0x63, +/*000024a0:*/0xff,0x8b,0xfb,0xc1,0xef,0x02,0x83,0xe7,0x0f,0x2e,0x8a,0xb5,0xc5,0x24,0x8b,0xfb, +/*000024b0:*/0xd1,0xef,0x83,0xe7,0x0f,0x2e,0x8a,0xad,0xc5,0x24,0x8b,0xfb,0x83,0xe7,0x0f,0x2e, +/*000024c0:*/0x8a,0x8d,0xc5,0x24,0xc3,0x00,0x2a,0x00,0x2a,0x00,0x2a,0x00,0x2a,0x15,0x3f,0x15, +/*000024d0:*/0x3f,0x15,0x3f,0x15,0x3f,0x00,0x2a,0x00,0x3f,0x00,0x2a,0x00,0x3f,0x00,0x2a,0x00, +/*000024e0:*/0x3f,0x9c,0x8a,0xc3,0xfa,0xe8,0x1e,0x00,0x2e,0x8a,0x05,0x42,0xe8,0x17,0x00,0x47, +/*000024f0:*/0x2e,0x8a,0x05,0xe8,0x10,0x00,0x47,0x2e,0x8a,0x05,0xe8,0x09,0x00,0xfb,0x47,0xfe, +/*00002500:*/0xc3,0x4a,0xe2,0xde,0x9d,0xc3,0xee,0xc3,0xec,0xc3,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002510:*/0x00,0x00,0x7e,0x81,0xa5,0x81,0xbd,0x99,0x81,0x7e,0x7c,0xfe,0xd6,0xba,0xc6,0xfe, +/*00002520:*/0x7c,0x00,0xc6,0xee,0xfe,0xfe,0x7c,0x38,0x10,0x00,0x10,0x38,0x7c,0xfe,0x7c,0x38, +/*00002530:*/0x10,0x00,0x10,0x38,0x10,0xee,0xee,0x10,0x38,0x00,0x38,0x7c,0xfe,0xfe,0x6c,0x10, +/*00002540:*/0x38,0x00,0x00,0x18,0x3c,0x7e,0x3c,0x18,0x00,0x00,0xff,0xe7,0xc3,0x81,0xc3,0xe7, +/*00002550:*/0xff,0xff,0x00,0x18,0x3c,0x66,0x66,0x3c,0x18,0x00,0xff,0xe7,0xc3,0x99,0x99,0xc3, +/*00002560:*/0xe7,0xff,0x1e,0x0e,0x1e,0x36,0x78,0xcc,0xcc,0x78,0x7e,0xc3,0xc3,0x7e,0x18,0x7e, +/*00002570:*/0x18,0x18,0x1e,0x1a,0x1e,0x18,0x18,0x70,0xf0,0x60,0x3e,0x3e,0x36,0x36,0xf6,0x66, +/*00002580:*/0x1e,0x0c,0xdb,0x3c,0x66,0xe7,0x66,0x3c,0xdb,0x00,0x80,0xc0,0xf0,0xf8,0xf0,0xc0, +/*00002590:*/0x80,0x00,0x02,0x06,0x1e,0x3e,0x1e,0x06,0x02,0x00,0x18,0x3c,0x7e,0x18,0x7e,0x3c, +/*000025a0:*/0x18,0x00,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00,0x7f,0xdb,0x7b,0x3b,0x1b,0x1b, +/*000025b0:*/0x1b,0x00,0x3c,0x66,0x38,0x6c,0x6c,0x38,0xcc,0x78,0x00,0x00,0x00,0x00,0xfe,0xfe, +/*000025c0:*/0xfe,0x00,0x18,0x3c,0x7e,0x18,0x7e,0x3c,0x18,0x7e,0x18,0x3c,0x7e,0x18,0x18,0x18, +/*000025d0:*/0x18,0x00,0x18,0x18,0x18,0x18,0x7e,0x3c,0x18,0x00,0x00,0x18,0x1c,0xfe,0x1c,0x18, +/*000025e0:*/0x00,0x00,0x00,0x30,0x70,0xfe,0x70,0x30,0x00,0x00,0x00,0x00,0xc0,0xc0,0xc0,0xfe, +/*000025f0:*/0x00,0x00,0x00,0x24,0x66,0xff,0x66,0x24,0x00,0x00,0x00,0x10,0x38,0x7c,0x7c,0xfe, +/*00002600:*/0x00,0x00,0x00,0xfe,0x7c,0x7c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002610:*/0x00,0x00,0x18,0x3c,0x3c,0x18,0x18,0x00,0x18,0x00,0x6c,0x6c,0x6c,0x00,0x00,0x00, +/*00002620:*/0x00,0x00,0x6c,0x6c,0xfe,0x6c,0xfe,0x6c,0x6c,0x00,0x18,0x7e,0xc0,0x7c,0x06,0xfc, +/*00002630:*/0x18,0x00,0x00,0xc6,0x0c,0x18,0x30,0x60,0xc6,0x00,0x38,0x6c,0x38,0x76,0xcc,0xcc, +/*00002640:*/0x76,0x00,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x18,0x30,0x60,0x60,0x60,0x30, +/*00002650:*/0x18,0x00,0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00,0x00,0xee,0x7c,0xfe,0x7c,0xee, +/*00002660:*/0x00,0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18, +/*00002670:*/0x30,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38, +/*00002680:*/0x38,0x00,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x7c,0xc6,0xce,0xde,0xf6,0xe6, +/*00002690:*/0x7c,0x00,0x18,0x78,0x18,0x18,0x18,0x18,0x7e,0x00,0x7c,0xc6,0x0c,0x18,0x30,0x66, +/*000026a0:*/0xfe,0x00,0x7c,0xc6,0x06,0x3c,0x06,0xc6,0x7c,0x00,0x0c,0x1c,0x3c,0x6c,0xfe,0x0c, +/*000026b0:*/0x0c,0x00,0xfe,0xc0,0xfc,0x06,0x06,0xc6,0x7c,0x00,0x7c,0xc6,0xc0,0xfc,0xc6,0xc6, +/*000026c0:*/0x7c,0x00,0xfe,0xc6,0x06,0x0c,0x18,0x18,0x18,0x00,0x7c,0xc6,0xc6,0x7c,0xc6,0xc6, +/*000026d0:*/0x7c,0x00,0x7c,0xc6,0xc6,0x7e,0x06,0xc6,0x7c,0x00,0x00,0x1c,0x1c,0x00,0x00,0x1c, +/*000026e0:*/0x1c,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30,0x0c,0x18,0x30,0x60,0x30,0x18, +/*000026f0:*/0x0c,0x00,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0x60,0x30,0x18,0x0c,0x18,0x30, +/*00002700:*/0x60,0x00,0x7c,0xc6,0x06,0x0c,0x18,0x00,0x18,0x00,0x7c,0xc6,0xc6,0xde,0xdc,0xc0, +/*00002710:*/0x7e,0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0x00,0xfc,0x66,0x66,0x7c,0x66,0x66, +/*00002720:*/0xfc,0x00,0x3c,0x66,0xc0,0xc0,0xc0,0x66,0x3c,0x00,0xf8,0x6c,0x66,0x66,0x66,0x6c, +/*00002730:*/0xf8,0x00,0xfe,0xc2,0xc0,0xf8,0xc0,0xc2,0xfe,0x00,0xfe,0x62,0x60,0x7c,0x60,0x60, +/*00002740:*/0xf0,0x00,0x7c,0xc6,0xc0,0xc0,0xde,0xc6,0x7c,0x00,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6, +/*00002750:*/0xc6,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x3c,0x18,0x18,0x18,0xd8,0xd8, +/*00002760:*/0x70,0x00,0xc6,0xcc,0xd8,0xf0,0xd8,0xcc,0xc6,0x00,0xf0,0x60,0x60,0x60,0x60,0x62, +/*00002770:*/0xfe,0x00,0xc6,0xee,0xfe,0xd6,0xd6,0xc6,0xc6,0x00,0xc6,0xe6,0xe6,0xf6,0xde,0xce, +/*00002780:*/0xc6,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0xfc,0x66,0x66,0x7c,0x60,0x60, +/*00002790:*/0xf0,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xd6,0x7c,0x06,0xfc,0xc6,0xc6,0xfc,0xd8,0xcc, +/*000027a0:*/0xc6,0x00,0x7c,0xc6,0xc0,0x7c,0x06,0xc6,0x7c,0x00,0x7e,0x5a,0x18,0x18,0x18,0x18, +/*000027b0:*/0x3c,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0xc6,0xc6,0xc6,0xc6,0x6c,0x38, +/*000027c0:*/0x10,0x00,0xc6,0xc6,0xd6,0xd6,0xfe,0xee,0xc6,0x00,0xc6,0x6c,0x38,0x38,0x38,0x6c, +/*000027d0:*/0xc6,0x00,0x66,0x66,0x66,0x3c,0x18,0x18,0x3c,0x00,0xfe,0x86,0x0c,0x18,0x30,0x62, +/*000027e0:*/0xfe,0x00,0x7c,0x60,0x60,0x60,0x60,0x60,0x7c,0x00,0xc0,0x60,0x30,0x18,0x0c,0x06, +/*000027f0:*/0x02,0x00,0x7c,0x0c,0x0c,0x0c,0x0c,0x0c,0x7c,0x00,0x10,0x38,0x6c,0xc6,0x00,0x00, +/*00002800:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x30,0x30,0x18,0x00,0x00,0x00, +/*00002810:*/0x00,0x00,0x00,0x00,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0xe0,0x60,0x7c,0x66,0x66,0x66, +/*00002820:*/0xfc,0x00,0x00,0x00,0x7c,0xc6,0xc0,0xc6,0x7c,0x00,0x1c,0x0c,0x7c,0xcc,0xcc,0xcc, +/*00002830:*/0x7e,0x00,0x00,0x00,0x7c,0xc6,0xfe,0xc0,0x7c,0x00,0x1c,0x36,0x30,0xfc,0x30,0x30, +/*00002840:*/0x78,0x00,0x00,0x00,0x76,0xce,0xc6,0x7e,0x06,0x7c,0xe0,0x60,0x7c,0x66,0x66,0x66, +/*00002850:*/0xe6,0x00,0x18,0x00,0x38,0x18,0x18,0x18,0x3c,0x00,0x0c,0x00,0x1c,0x0c,0x0c,0x0c, +/*00002860:*/0xcc,0x78,0xe0,0x60,0x66,0x6c,0x78,0x6c,0xe6,0x00,0x18,0x18,0x18,0x18,0x18,0x18, +/*00002870:*/0x1c,0x00,0x00,0x00,0x6c,0xfe,0xd6,0xd6,0xc6,0x00,0x00,0x00,0xdc,0x66,0x66,0x66, +/*00002880:*/0x66,0x00,0x00,0x00,0x7c,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0xdc,0x66,0x66,0x7c, +/*00002890:*/0x60,0xf0,0x00,0x00,0x76,0xcc,0xcc,0x7c,0x0c,0x1e,0x00,0x00,0xdc,0x66,0x60,0x60, +/*000028a0:*/0xf0,0x00,0x00,0x00,0x7c,0xc0,0x7c,0x06,0x7c,0x00,0x30,0x30,0xfc,0x30,0x30,0x36, +/*000028b0:*/0x1c,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0xc6,0xc6,0x6c,0x38, +/*000028c0:*/0x10,0x00,0x00,0x00,0xc6,0xc6,0xd6,0xfe,0x6c,0x00,0x00,0x00,0xc6,0x6c,0x38,0x6c, +/*000028d0:*/0xc6,0x00,0x00,0x00,0xc6,0xc6,0xce,0x76,0x06,0x7c,0x00,0x00,0xfc,0x98,0x30,0x64, +/*000028e0:*/0xfc,0x00,0x0e,0x18,0x18,0x70,0x18,0x18,0x0e,0x00,0x18,0x18,0x18,0x00,0x18,0x18, +/*000028f0:*/0x18,0x00,0x70,0x18,0x18,0x0e,0x18,0x18,0x70,0x00,0x76,0xdc,0x00,0x00,0x00,0x00, +/*00002900:*/0x00,0x00,0x00,0x10,0x38,0x38,0x6c,0x6c,0xfe,0x00,0x3c,0x66,0xc0,0x66,0x3c,0x18, +/*00002910:*/0xcc,0x78,0x00,0xc6,0x00,0xc6,0xc6,0xce,0x76,0x00,0x0e,0x00,0x7c,0xc6,0xfe,0xc0, +/*00002920:*/0x7c,0x00,0x7c,0xc6,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0xc6,0x00,0x78,0x0c,0x7c,0xcc, +/*00002930:*/0x7e,0x00,0xe0,0x00,0x78,0x0c,0x7c,0xcc,0x7e,0x00,0x38,0x38,0x78,0x0c,0x7c,0xcc, +/*00002940:*/0x7e,0x00,0x00,0x00,0x7c,0xc0,0x7c,0x18,0x6c,0x38,0x7c,0xc6,0x7c,0xc6,0xfe,0xc0, +/*00002950:*/0x7c,0x00,0xc6,0x00,0x7c,0xc6,0xfe,0xc0,0x7c,0x00,0xe0,0x00,0x7c,0xc6,0xfe,0xc0, +/*00002960:*/0x7c,0x00,0x66,0x00,0x38,0x18,0x18,0x18,0x3c,0x00,0x7c,0xc6,0x38,0x18,0x18,0x18, +/*00002970:*/0x3c,0x00,0x00,0x00,0x38,0x18,0x18,0x18,0x3c,0x00,0xc6,0x38,0x6c,0xc6,0xfe,0xc6, +/*00002980:*/0xc6,0x00,0x38,0x38,0x00,0x7c,0xc6,0xfe,0xc6,0x00,0x0e,0x00,0xfe,0xc0,0xf8,0xc0, +/*00002990:*/0xfe,0x00,0x00,0x00,0x6c,0x9a,0x7e,0xd8,0x6e,0x00,0x7e,0xd8,0xd8,0xfe,0xd8,0xd8, +/*000029a0:*/0xde,0x00,0x7c,0xc6,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x00,0xc6,0x00,0x7c,0xc6,0xc6, +/*000029b0:*/0x7c,0x00,0x00,0xe0,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x7c,0xc6,0x00,0xc6,0xc6,0xce, +/*000029c0:*/0x76,0x00,0x00,0xe0,0x00,0xc6,0xc6,0xce,0x76,0x00,0x18,0x00,0x3c,0x18,0x18,0x18, +/*000029d0:*/0x3c,0x00,0xc6,0x38,0x6c,0xc6,0xc6,0x6c,0x38,0x00,0xc6,0x00,0xc6,0xc6,0xc6,0xc6, +/*000029e0:*/0x7c,0x00,0x00,0x18,0x7e,0xd8,0xd8,0x7e,0x18,0x00,0x38,0x6c,0x60,0xf0,0x66,0xf6, +/*000029f0:*/0x6c,0x00,0xc3,0x66,0x3c,0x7e,0x18,0x3c,0x18,0x00,0x3e,0x63,0x38,0x0e,0x63,0x3e, +/*00002a00:*/0x00,0x1c,0x00,0x3e,0x61,0x3c,0x86,0x7c,0x00,0x1c,0x0e,0x00,0x78,0x0c,0x7c,0xcc, +/*00002a10:*/0x7e,0x00,0x1c,0x00,0x38,0x18,0x18,0x18,0x3c,0x00,0x00,0x0e,0x00,0x7c,0xc6,0xc6, +/*00002a20:*/0x7c,0x00,0x00,0x0e,0x00,0xcc,0xcc,0xdc,0x76,0x00,0x00,0xfc,0x00,0xbc,0x66,0x66, +/*00002a30:*/0xe6,0x00,0xfe,0x00,0xc6,0xe6,0xf6,0xce,0xc6,0x00,0x3e,0x00,0x3e,0x60,0x67,0x63, +/*00002a40:*/0x3d,0x00,0x3e,0x00,0x76,0xce,0xc6,0x7e,0x06,0x7c,0x18,0x00,0x18,0x30,0x60,0x66, +/*00002a50:*/0x3c,0x00,0x00,0x00,0x00,0x7c,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x7c,0x0c,0x0c, +/*00002a60:*/0x00,0x00,0xc0,0xcc,0xd8,0x30,0x7c,0x36,0x0c,0x3e,0xc0,0xcc,0xd8,0x30,0x6c,0x3c, +/*00002a70:*/0x7e,0x0c,0x18,0x00,0x18,0x18,0x3c,0x3c,0x18,0x00,0x00,0x36,0x6c,0xd8,0x6c,0x36, +/*00002a80:*/0x00,0x00,0x00,0xd8,0x6c,0x36,0x6c,0xd8,0x00,0x00,0x22,0x88,0x22,0x88,0x22,0x88, +/*00002a90:*/0x22,0x88,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0xdd,0x77,0xdd,0x77,0xdd,0x77, +/*00002aa0:*/0xdd,0x77,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x18, +/*00002ab0:*/0x18,0x18,0x18,0x18,0xf8,0x18,0xf8,0x18,0x18,0x18,0x36,0x36,0x36,0x36,0xf6,0x36, +/*00002ac0:*/0x36,0x36,0x00,0x00,0x00,0x00,0xfe,0x36,0x36,0x36,0x00,0x00,0xf8,0x18,0xf8,0x18, +/*00002ad0:*/0x18,0x18,0x36,0x36,0xf6,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*00002ae0:*/0x36,0x36,0x00,0x00,0xfe,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0xf6,0x06,0xfe,0x00, +/*00002af0:*/0x00,0x00,0x36,0x36,0x36,0x36,0xfe,0x00,0x00,0x00,0x18,0x18,0xf8,0x18,0xf8,0x00, +/*00002b00:*/0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x00, +/*00002b10:*/0x00,0x00,0x18,0x18,0x18,0x18,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x18, +/*00002b20:*/0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0xff,0x00, +/*00002b30:*/0x00,0x00,0x18,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x1f,0x18,0x1f,0x18, +/*00002b40:*/0x18,0x18,0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x3f,0x00, +/*00002b50:*/0x00,0x00,0x00,0x00,0x3f,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0xf7,0x00,0xff,0x00, +/*00002b60:*/0x00,0x00,0x00,0x00,0xff,0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0x37,0x30,0x37,0x36, +/*00002b70:*/0x36,0x36,0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x36,0x36,0xf7,0x00,0xf7,0x36, +/*00002b80:*/0x36,0x36,0x18,0x18,0xff,0x00,0xff,0x00,0x00,0x00,0x36,0x36,0x36,0x36,0xff,0x00, +/*00002b90:*/0x00,0x00,0x00,0x00,0xff,0x00,0xff,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0xff,0x36, +/*00002ba0:*/0x36,0x36,0x36,0x36,0x36,0x36,0x3f,0x00,0x00,0x00,0x18,0x18,0x1f,0x18,0x1f,0x00, +/*00002bb0:*/0x00,0x00,0x00,0x00,0x1f,0x18,0x1f,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x3f,0x36, +/*00002bc0:*/0x36,0x36,0x36,0x36,0x36,0x36,0xff,0x36,0x36,0x36,0x18,0x18,0xff,0x18,0xff,0x18, +/*00002bd0:*/0x18,0x18,0x18,0x18,0x18,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x18, +/*00002be0:*/0x18,0x18,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff, +/*00002bf0:*/0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +/*00002c00:*/0x0f,0x0f,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0xdc,0xd8,0xdc, +/*00002c10:*/0x66,0x00,0x00,0x78,0xcc,0xf8,0xcc,0xc6,0xcc,0x00,0x00,0xfe,0x62,0x60,0x60,0x60, +/*00002c20:*/0xe0,0x00,0x00,0xfe,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0xfe,0xc6,0x60,0x30,0x60,0xc6, +/*00002c30:*/0xfe,0x00,0x00,0x7e,0xd8,0xcc,0xcc,0xd8,0x70,0x00,0x00,0x66,0x66,0x66,0x66,0x7c, +/*00002c40:*/0xc0,0x00,0x00,0x76,0xdc,0x18,0x18,0x18,0x38,0x00,0xfe,0x38,0x6c,0xc6,0x6c,0x38, +/*00002c50:*/0xfe,0x00,0x38,0x6c,0xc6,0xfe,0xc6,0x6c,0x38,0x00,0x38,0x6c,0xc6,0xc6,0x6c,0x6c, +/*00002c60:*/0xee,0x00,0x3e,0x60,0x38,0x66,0xc6,0xcc,0x78,0x00,0x00,0x00,0x7e,0xdb,0xdb,0x7e, +/*00002c70:*/0x00,0x00,0x06,0x7c,0xde,0xf6,0xe6,0x7c,0xc0,0x00,0x38,0x60,0xc0,0xf8,0xc0,0x60, +/*00002c80:*/0x38,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0xfe,0x00,0xfe,0x00,0xfe, +/*00002c90:*/0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x7e,0x00,0x30,0x18,0x0c,0x18,0x30,0x00, +/*00002ca0:*/0x7e,0x00,0x0c,0x18,0x30,0x18,0x0c,0x00,0x7e,0x00,0x0c,0x1e,0x18,0x18,0x18,0x18, +/*00002cb0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x30,0x00,0x00,0x00,0x18,0x00,0x7e,0x00, +/*00002cc0:*/0x18,0x00,0x00,0x76,0xdc,0x00,0x76,0xdc,0x00,0x00,0x7c,0xc6,0xc6,0x7c,0x00,0x00, +/*00002cd0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00, +/*00002ce0:*/0x00,0x00,0x1f,0x18,0x18,0x18,0xf8,0x38,0x18,0x00,0xd8,0x6c,0x6c,0x6c,0x00,0x00, +/*00002cf0:*/0x00,0x00,0x70,0xd8,0x30,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x7c,0x7c,0x7c, +/*00002d00:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x00,0x24, +/*00002d10:*/0x66,0xff,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, +/*00002d20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e, +/*00002d30:*/0x81,0xa5,0x81,0x81,0xbd,0x99,0x81,0x81,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00002d40:*/0xfe,0xfe,0xd6,0xfe,0xfe,0xba,0xc6,0xfe,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002d50:*/0x6c,0xee,0xfe,0xfe,0xfe,0xfe,0x7c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002d60:*/0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002d70:*/0x10,0x38,0x38,0x10,0x6c,0xee,0x6c,0x10,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x10, +/*00002d80:*/0x38,0x7c,0x7c,0xfe,0xfe,0xfe,0x6c,0x10,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002d90:*/0x00,0x00,0x18,0x3c,0x3c,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +/*00002da0:*/0xff,0xff,0xe7,0xc3,0xc3,0xc3,0xe7,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +/*00002db0:*/0x00,0x18,0x3c,0x66,0x66,0x66,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff, +/*00002dc0:*/0xff,0xe7,0xc3,0x99,0x99,0x99,0xc3,0xe7,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x1e, +/*00002dd0:*/0x0e,0x1e,0x36,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x3c, +/*00002de0:*/0x66,0x66,0x66,0x3c,0x18,0x7e,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x1e, +/*00002df0:*/0x1a,0x1e,0x18,0x18,0x18,0x18,0x78,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x3e, +/*00002e00:*/0x36,0x3e,0x36,0x36,0x76,0xf6,0x66,0x0e,0x1e,0x0c,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002e10:*/0xdb,0x7e,0x3c,0x66,0x66,0x3c,0x7e,0xdb,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002e20:*/0x80,0xe0,0xf0,0xfc,0xfe,0xfc,0xf0,0xe0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002e30:*/0x02,0x0e,0x3e,0x7e,0xfe,0x7e,0x3e,0x0e,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002e40:*/0x3c,0x7e,0x18,0x18,0x18,0x18,0x7e,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x66, +/*00002e50:*/0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x7f, +/*00002e60:*/0xdb,0xdb,0xdb,0xdb,0x7b,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00002e70:*/0xc6,0xc6,0x60,0x7c,0xf6,0xde,0x7c,0x0c,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00, +/*00002e80:*/0x00,0x00,0x00,0x00,0x00,0xfe,0xfe,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002e90:*/0x3c,0x7e,0x18,0x18,0x18,0x7e,0x3c,0x18,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002ea0:*/0x3c,0x7e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002eb0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ec0:*/0x00,0x00,0x0c,0x0e,0xff,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ed0:*/0x00,0x00,0x30,0x70,0xfe,0x70,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ee0:*/0x00,0x00,0x00,0xc0,0xc0,0xc0,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ef0:*/0x00,0x00,0x24,0x66,0xff,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002f00:*/0x10,0x38,0x38,0x38,0x7c,0x7c,0xfe,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002f10:*/0xfe,0xfe,0x7c,0x7c,0x7c,0x38,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002f20:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002f30:*/0x3c,0x3c,0x3c,0x3c,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x36,0x36, +/*00002f40:*/0x36,0x36,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c, +/*00002f50:*/0x6c,0x6c,0xfe,0x6c,0x6c,0xfe,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00002f60:*/0x18,0x7c,0xc6,0xc0,0x78,0x3c,0x06,0xc6,0x7c,0x18,0x18,0x00,0x00,0x00,0x00,0x00, +/*00002f70:*/0x00,0x00,0x62,0x66,0x0c,0x18,0x30,0x66,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x38, +/*00002f80:*/0x6c,0x38,0x30,0x76,0x7e,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c, +/*00002f90:*/0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +/*00002fa0:*/0x18,0x30,0x30,0x30,0x30,0x30,0x30,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x30, +/*00002fb0:*/0x18,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002fc0:*/0x00,0x00,0x6c,0x38,0xfe,0x38,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002fd0:*/0x00,0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002fe0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00, +/*00002ff0:*/0x00,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003000:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003010:*/0x00,0x02,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003020:*/0xc6,0xc6,0xce,0xde,0xf6,0xe6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*00003030:*/0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003040:*/0xc6,0xc6,0x06,0x0c,0x18,0x30,0x60,0xc6,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003050:*/0xc6,0x06,0x06,0x3c,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +/*00003060:*/0x1c,0x3c,0x6c,0xcc,0xcc,0xfe,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003070:*/0xc0,0xc0,0xc0,0xfc,0x06,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003080:*/0xc6,0xc0,0xc0,0xfc,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003090:*/0xc6,0x06,0x0c,0x18,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*000030a0:*/0xc6,0xc6,0xc6,0x7c,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*000030b0:*/0xc6,0xc6,0xc6,0xc6,0x7e,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000030c0:*/0x00,0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000030d0:*/0x00,0x00,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x0c,0x18,0x00,0x00,0x00,0x00,0x00,0x00, +/*000030e0:*/0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000030f0:*/0x00,0x00,0x00,0xfe,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003100:*/0x60,0x30,0x18,0x0c,0x06,0x0c,0x18,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003110:*/0xc6,0xc6,0x0c,0x18,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003120:*/0xc6,0xc6,0xc6,0xde,0xde,0xde,0xdc,0xc0,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x38, +/*00003130:*/0x6c,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, +/*00003140:*/0x66,0x66,0x66,0x7c,0x66,0x66,0x66,0x66,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x3c, +/*00003150:*/0x66,0xc2,0xc0,0xc0,0xc0,0xc0,0xc2,0x66,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xf8, +/*00003160:*/0x6c,0x66,0x66,0x66,0x66,0x66,0x66,0x6c,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003170:*/0x66,0x60,0x64,0x7c,0x64,0x60,0x60,0x66,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003180:*/0x66,0x60,0x64,0x7c,0x64,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003190:*/0xc6,0xc6,0xc0,0xc0,0xc0,0xce,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*000031a0:*/0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x3c, +/*000031b0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x3c, +/*000031c0:*/0x18,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*000031d0:*/0xc6,0xcc,0xd8,0xf0,0xf0,0xd8,0xcc,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xf0, +/*000031e0:*/0x60,0x60,0x60,0x60,0x60,0x60,0x62,0x66,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*000031f0:*/0xc6,0xee,0xee,0xfe,0xd6,0xd6,0xd6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*00003200:*/0xc6,0xe6,0xe6,0xf6,0xde,0xce,0xce,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003210:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, +/*00003220:*/0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003230:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xd6,0xd6,0x7c,0x06,0x00,0x00,0x00,0x00,0x00,0xfc, +/*00003240:*/0x66,0x66,0x66,0x7c,0x78,0x6c,0x66,0x66,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003250:*/0xc6,0xc0,0xc0,0x70,0x1c,0x06,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x7e, +/*00003260:*/0x5a,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*00003270:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*00003280:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*00003290:*/0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0xee,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*000032a0:*/0xc6,0xc6,0x6c,0x38,0x38,0x6c,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x66, +/*000032b0:*/0x66,0x66,0x66,0x66,0x3c,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*000032c0:*/0xc6,0x86,0x0c,0x18,0x30,0x60,0xc2,0xc6,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*000032d0:*/0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000032e0:*/0x00,0x80,0xc0,0x60,0x30,0x18,0x0c,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*000032f0:*/0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x7c,0x00,0x00,0x00,0x00,0x00,0x10,0x38, +/*00003300:*/0x6c,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003310:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x18,0x18, +/*00003320:*/0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003330:*/0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0xe0, +/*00003340:*/0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0x66,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003350:*/0x00,0x00,0x7c,0xc6,0xc0,0xc0,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x1c, +/*00003360:*/0x0c,0x0c,0x7c,0xcc,0xcc,0xcc,0xcc,0xcc,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003370:*/0x00,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x1c, +/*00003380:*/0x36,0x30,0x30,0xfc,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003390:*/0x00,0x00,0x76,0xce,0xc6,0xc6,0xce,0x76,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0xe0, +/*000033a0:*/0x60,0x60,0x7c,0x66,0x66,0x66,0x66,0x66,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*000033b0:*/0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +/*000033c0:*/0x0c,0x00,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0xcc,0xcc,0x78,0x00,0x00,0x00,0x00,0xe0, +/*000033d0:*/0x60,0x60,0x66,0x66,0x6c,0x78,0x6c,0x66,0xe6,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*000033e0:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000033f0:*/0x00,0x00,0x6c,0xfe,0xd6,0xd6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003400:*/0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003410:*/0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003420:*/0x00,0x00,0xdc,0x66,0x66,0x66,0x66,0x7c,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,0x00, +/*00003430:*/0x00,0x00,0x76,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,0x00, +/*00003440:*/0x00,0x00,0xdc,0x66,0x60,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003450:*/0x00,0x00,0x7c,0xc6,0xc0,0x7c,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x30, +/*00003460:*/0x30,0x30,0xfc,0x30,0x30,0x30,0x30,0x36,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003470:*/0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003480:*/0x00,0x00,0xc6,0xc6,0xc6,0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003490:*/0x00,0x00,0xc6,0xc6,0xd6,0xd6,0xd6,0xfe,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000034a0:*/0x00,0x00,0xc6,0xc6,0x6c,0x38,0x6c,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000034b0:*/0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xce,0x76,0x06,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00, +/*000034c0:*/0x00,0x00,0xfe,0x86,0x0c,0x18,0x30,0x62,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x0e, +/*000034d0:*/0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*000034e0:*/0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x70, +/*000034f0:*/0x18,0x18,0x18,0x0e,0x18,0x18,0x18,0x18,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x76, +/*00003500:*/0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003510:*/0x00,0x00,0x10,0x38,0x38,0x6c,0x6c,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3c, +/*00003520:*/0x66,0xc0,0xc0,0xc0,0xc6,0x66,0x3c,0x18,0x0c,0xcc,0x38,0x00,0x00,0x00,0x00,0xc6, +/*00003530:*/0x00,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce,0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x18, +/*00003540:*/0x30,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x78, +/*00003550:*/0xcc,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0xcc, +/*00003560:*/0x00,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x60,0x30, +/*00003570:*/0x18,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x38,0x6c, +/*00003580:*/0x38,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003590:*/0x00,0x7c,0xc6,0xc0,0xc0,0xc6,0x7c,0x18,0x0c,0x6c,0x38,0x00,0x00,0x00,0x30,0x78, +/*000035a0:*/0xcc,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc, +/*000035b0:*/0x00,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x18, +/*000035c0:*/0x0c,0x00,0x7c,0xc6,0xc6,0xfe,0xc0,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x66, +/*000035d0:*/0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x18,0x3c, +/*000035e0:*/0x66,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000035f0:*/0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00, +/*00003600:*/0x38,0x6c,0xc6,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x38,0x6c,0x38, +/*00003610:*/0x00,0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x0c,0x18,0x30, +/*00003620:*/0x00,0xfe,0x60,0x60,0x7c,0x60,0x60,0x60,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003630:*/0x00,0x66,0xdb,0x1b,0x7f,0xd8,0xd8,0xdf,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x7e, +/*00003640:*/0xd8,0xd8,0xd8,0xd8,0xfe,0xd8,0xd8,0xd8,0xde,0x00,0x00,0x00,0x00,0x00,0x30,0x78, +/*00003650:*/0xcc,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0xc6, +/*00003660:*/0x00,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x18, +/*00003670:*/0x0c,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x30,0x78, +/*00003680:*/0xcc,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce,0x76,0x00,0x00,0x00,0x00,0x00,0x60,0x30, +/*00003690:*/0x18,0x00,0xc6,0xc6,0xc6,0xc6,0xc6,0xce,0x76,0x00,0x00,0x00,0x00,0x00,0x18,0x00, +/*000036a0:*/0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00, +/*000036b0:*/0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0xc6,0x00, +/*000036c0:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x18, +/*000036d0:*/0x18,0x7c,0xc6,0xc0,0xc0,0xc6,0x7c,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x38,0x6c, +/*000036e0:*/0x60,0x60,0xf0,0x60,0x60,0x60,0x66,0xf6,0x6c,0x00,0x00,0x00,0x00,0x00,0x66,0x66, +/*000036f0:*/0x66,0x66,0x3c,0x18,0x7e,0x18,0x3c,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x3e, +/*00003700:*/0x63,0x63,0x30,0x1c,0x06,0x63,0x63,0x3e,0x00,0x1c,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003710:*/0x00,0x00,0x3e,0x63,0x38,0x0e,0x63,0x3e,0x00,0x1c,0x00,0x00,0x00,0x00,0x0c,0x18, +/*00003720:*/0x30,0x00,0x78,0x0c,0x7c,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x0c,0x18, +/*00003730:*/0x30,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,0x00,0x0c,0x18, +/*00003740:*/0x30,0x00,0x7c,0xc6,0xc6,0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x18,0x30, +/*00003750:*/0x60,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x76, +/*00003760:*/0xdc,0x00,0xbc,0x66,0x66,0x66,0x66,0x66,0xe6,0x00,0x00,0x00,0x00,0x00,0x76,0xdc, +/*00003770:*/0x00,0xc6,0xc6,0xe6,0xf6,0xde,0xce,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x21,0x1e, +/*00003780:*/0x00,0x1e,0x33,0x60,0x60,0x67,0x63,0x33,0x1d,0x00,0x00,0x00,0x00,0x00,0x42,0x3c, +/*00003790:*/0x00,0x3b,0x66,0x66,0x66,0x3e,0x06,0x66,0x3c,0x00,0x00,0x00,0x00,0x00,0x00,0x30, +/*000037a0:*/0x30,0x00,0x30,0x30,0x30,0x60,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000037b0:*/0x00,0x00,0x00,0x00,0x7e,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000037c0:*/0x00,0x00,0x00,0x00,0x7e,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60, +/*000037d0:*/0x62,0x66,0x6c,0x18,0x30,0x60,0xdc,0x36,0x0c,0x18,0x3e,0x00,0x00,0x00,0x60,0x60, +/*000037e0:*/0x62,0x66,0x6c,0x18,0x36,0x6e,0xde,0x36,0x7e,0x06,0x06,0x00,0x00,0x00,0x00,0x18, +/*000037f0:*/0x18,0x00,0x18,0x18,0x3c,0x3c,0x3c,0x3c,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003800:*/0x00,0x00,0x36,0x6c,0xd8,0x6c,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003810:*/0x00,0x00,0xd8,0x6c,0x36,0x6c,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x44,0x11, +/*00003820:*/0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0x11,0x44,0xaa,0x55,0xaa, +/*00003830:*/0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xdd,0x77,0xdd, +/*00003840:*/0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0x18,0x18,0x18, +/*00003850:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003860:*/0x18,0x18,0x18,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003870:*/0x18,0x18,0xf8,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36, +/*00003880:*/0x36,0x36,0x36,0x36,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00, +/*00003890:*/0x00,0x00,0x00,0x00,0xfe,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00, +/*000038a0:*/0x00,0x00,0xf8,0x18,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36, +/*000038b0:*/0x36,0x36,0xf6,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*000038c0:*/0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00, +/*000038d0:*/0x00,0x00,0xfe,0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*000038e0:*/0x36,0x36,0xf6,0x06,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36, +/*000038f0:*/0x36,0x36,0x36,0x36,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18, +/*00003900:*/0x18,0x18,0xf8,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003910:*/0x00,0x00,0x00,0x00,0xf8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003920:*/0x18,0x18,0x18,0x18,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18, +/*00003930:*/0x18,0x18,0x18,0x18,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003940:*/0x00,0x00,0x00,0x00,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003950:*/0x18,0x18,0x18,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00, +/*00003960:*/0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18, +/*00003970:*/0x18,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003980:*/0x18,0x18,0x1f,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x36,0x36,0x36, +/*00003990:*/0x36,0x36,0x36,0x36,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*000039a0:*/0x36,0x36,0x37,0x30,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000039b0:*/0x00,0x00,0x3f,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*000039c0:*/0x36,0x36,0xf7,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000039d0:*/0x00,0x00,0xff,0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*000039e0:*/0x36,0x36,0x37,0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x00,0x00,0x00, +/*000039f0:*/0x00,0x00,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36, +/*00003a00:*/0x36,0x36,0xf7,0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x18,0x18,0x18, +/*00003a10:*/0x18,0x18,0xff,0x00,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x36,0x36, +/*00003a20:*/0x36,0x36,0x36,0x36,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003a30:*/0x00,0x00,0xff,0x00,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00, +/*00003a40:*/0x00,0x00,0x00,0x00,0xff,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*00003a50:*/0x36,0x36,0x36,0x36,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18, +/*00003a60:*/0x18,0x18,0x1f,0x18,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003a70:*/0x00,0x00,0x1f,0x18,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00, +/*00003a80:*/0x00,0x00,0x00,0x00,0x3f,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +/*00003a90:*/0x36,0x36,0x36,0x36,0xff,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x18,0x18,0x18, +/*00003aa0:*/0x18,0x18,0xff,0x18,0xff,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003ab0:*/0x18,0x18,0x18,0x18,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003ac0:*/0x00,0x00,0x00,0x00,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff,0xff,0xff, +/*00003ad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00, +/*00003ae0:*/0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0, +/*00003af0:*/0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x0f,0x0f,0x0f, +/*00003b00:*/0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0xff,0xff,0xff, +/*00003b10:*/0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003b20:*/0x00,0x76,0xdc,0xd8,0xd8,0xd8,0xd8,0xdc,0x76,0x00,0x00,0x00,0x00,0x00,0x00,0x78, +/*00003b30:*/0xcc,0xcc,0xd8,0xfc,0xc6,0xc6,0xc6,0xc6,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003b40:*/0x66,0x62,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003b50:*/0x00,0x00,0xfe,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003b60:*/0xc6,0x62,0x30,0x18,0x18,0x30,0x62,0xc6,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003b70:*/0x00,0x00,0x7e,0xd8,0xcc,0xcc,0xcc,0xd8,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003b80:*/0x00,0x66,0x66,0x66,0x66,0x66,0x7c,0x60,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003b90:*/0x00,0x00,0x76,0xdc,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0xfe, +/*00003ba0:*/0x38,0x38,0x6c,0xc6,0xc6,0x6c,0x38,0x38,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003bb0:*/0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0x6c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x38, +/*00003bc0:*/0x6c,0xc6,0xc6,0xc6,0xc6,0x6c,0x6c,0x6c,0xee,0x00,0x00,0x00,0x00,0x00,0x00,0x3e, +/*00003bd0:*/0x60,0x60,0x3c,0x66,0xc6,0xc6,0xc6,0xcc,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003be0:*/0x00,0x00,0x7e,0xdb,0xdb,0xdb,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, +/*00003bf0:*/0x06,0x7c,0xce,0xde,0xf6,0xf6,0x7c,0x60,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c00:*/0x1c,0x30,0x60,0x60,0x7c,0x60,0x60,0x30,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x7c, +/*00003c10:*/0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c20:*/0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c30:*/0x00,0x18,0x18,0x7e,0x18,0x18,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x30, +/*00003c40:*/0x18,0x0c,0x06,0x0c,0x18,0x30,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +/*00003c50:*/0x18,0x30,0x60,0x30,0x18,0x0c,0x00,0x00,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c60:*/0x00,0x0c,0x1e,0x1a,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +/*00003c70:*/0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x58,0x78,0x30,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c80:*/0x00,0x18,0x18,0x00,0x7e,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003c90:*/0x00,0x00,0x00,0x76,0xdc,0x00,0x76,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78, +/*00003ca0:*/0xcc,0xcc,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003cb0:*/0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003cc0:*/0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f, +/*00003cd0:*/0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0x78,0x38,0x18,0x00,0x00,0x00,0x00,0x00,0xd8, +/*00003ce0:*/0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70, +/*00003cf0:*/0xd8,0x18,0x30,0x60,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003d00:*/0x00,0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00003d10:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x00,0x00, +/*00003d20:*/0x00,0x00,0x00,0x24,0x66,0xff,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x2f,0x00, +/*00003d30:*/0x00,0x00,0x01,0x03,0x06,0x0c,0x18,0x30,0x60,0xc0,0x80,0x00,0x00,0x00,0x00,0x30, +/*00003d40:*/0x00,0x00,0x7e,0xc3,0xc3,0xc3,0xdb,0xdb,0xc3,0xc3,0xc3,0x7e,0x00,0x00,0x00,0x00, +/*00003d50:*/0x4d,0x00,0x00,0xc3,0xc3,0xe7,0xff,0xff,0xdb,0xdb,0xc3,0xc3,0xc3,0x00,0x00,0x00, +/*00003d60:*/0x00,0x54,0x00,0x00,0xff,0x99,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3c,0x00,0x00, +/*00003d70:*/0x00,0x00,0x56,0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x66,0x3c,0x18,0x00, +/*00003d80:*/0x00,0x00,0x00,0x57,0x00,0x00,0xc3,0xc3,0xc3,0xc3,0xdb,0xdb,0xdb,0xdb,0xff,0x66, +/*00003d90:*/0x00,0x00,0x00,0x00,0x58,0x00,0x00,0xc3,0xc3,0xc3,0x66,0x3c,0x3c,0x66,0xc3,0xc3, +/*00003da0:*/0xc3,0x00,0x00,0x00,0x00,0x59,0x00,0x00,0xc3,0xc3,0xc3,0xc3,0x66,0x3c,0x18,0x18, +/*00003db0:*/0x18,0x3c,0x00,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x80,0xc0,0x60,0x30,0x18,0x0c, +/*00003dc0:*/0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x00,0x00,0x66,0xff,0xdb, +/*00003dd0:*/0xdb,0xdb,0xc3,0xc3,0x00,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x00,0x00,0xc3,0xc3, +/*00003de0:*/0xc3,0xc3,0x66,0x3c,0x18,0x00,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x00,0x00,0xc3, +/*00003df0:*/0xc3,0xdb,0xdb,0xdb,0xff,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x2d,0x0b,0xdb, +/*00003e00:*/0x74,0x03,0xe9,0x3f,0x01,0x57,0x32,0xc0,0xb9,0x40,0x00,0xf3,0xaa,0x5f,0xbb,0xec, +/*00003e10:*/0x92,0x26,0x89,0x1d,0x26,0x8c,0x4d,0x02,0xe8,0x70,0x3a,0x57,0xbe,0x49,0x04,0xb9, +/*00003e20:*/0x1e,0x00,0x83,0xc7,0x04,0xfc,0x8a,0x04,0x26,0x88,0x05,0x46,0x47,0xe2,0xf7,0x5f, +/*00003e30:*/0xa0,0x84,0x04,0xfe,0xc0,0x26,0x88,0x45,0x22,0xa1,0x85,0x04,0x26,0x89,0x45,0x23, +/*00003e40:*/0x57,0xe8,0xda,0x53,0x5f,0x26,0x88,0x5d,0x25,0x26,0x88,0x7d,0x26,0x8a,0x1e,0x49, +/*00003e50:*/0x04,0x80,0xfb,0x13,0x7f,0x1d,0x32,0xff,0xd1,0xe3,0x2e,0x8a,0x87,0xc4,0x92,0x32, +/*00003e60:*/0xe4,0x0a,0xc0,0x74,0x01,0x40,0x26,0x89,0x45,0x27,0x2e,0x8a,0x87,0xc5,0x92,0x26, +/*00003e70:*/0x88,0x45,0x29,0xa1,0x85,0x04,0x8a,0x16,0x84,0x04,0xfe,0xc2,0xf6,0xe2,0xb2,0x00, +/*00003e80:*/0x3d,0xc8,0x00,0x7e,0x15,0xb2,0x01,0x3d,0x5e,0x01,0x7e,0x0e,0xb2,0x02,0x3d,0x90, +/*00003e90:*/0x01,0x7e,0x07,0xb2,0x03,0x3d,0xe0,0x01,0x7e,0x00,0x26,0x88,0x55,0x2a,0x8a,0x26, +/*00003ea0:*/0x87,0x04,0x8a,0xc4,0x24,0x01,0xc0,0xe0,0x04,0x80,0xe4,0x02,0xd0,0xe4,0x0a,0xe0, +/*00003eb0:*/0x80,0xf4,0x10,0xa0,0x89,0x04,0x24,0x0a,0x0a,0xe0,0xe8,0x40,0x3a,0xb2,0xc0,0xb0, +/*00003ec0:*/0x30,0xee,0x42,0xec,0x24,0x08,0xc0,0xe0,0x02,0x0a,0xc4,0x0c,0x01,0x26,0x88,0x45, +/*00003ed0:*/0x2d,0xb0,0x03,0x26,0x88,0x45,0x31,0xe8,0x23,0x3a,0x1e,0x06,0x32,0xd2,0xc4,0x1e, +/*00003ee0:*/0xa8,0x04,0x8c,0xc1,0x8c,0xce,0x3b,0xce,0x74,0x34,0x26,0xc5,0x77,0x04,0x8c,0xd9, +/*00003ef0:*/0x0b,0xf1,0x74,0x03,0x80,0xca,0x10,0x26,0xc5,0x77,0x0c,0x8c,0xd9,0x0b,0xf1,0x74, +/*00003f00:*/0x03,0x80,0xca,0x08,0x26,0xc5,0x77,0x08,0x8c,0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca, +/*00003f10:*/0x04,0x26,0xc5,0x77,0x10,0x8c,0xd9,0x0b,0xf1,0x74,0x03,0x80,0xca,0x01,0x07,0x1f, +/*00003f20:*/0x26,0x88,0x55,0x32,0xb0,0x03,0xba,0xc4,0x03,0xe8,0x55,0x39,0x8a,0xe0,0xc0,0xec, +/*00003f30:*/0x02,0x8a,0xd4,0x8a,0xf2,0xd0,0xee,0x81,0xe2,0x04,0x04,0x25,0x03,0x03,0x0b,0xc2, +/*00003f40:*/0x26,0x89,0x45,0x2b,0x8b,0xec,0xc6,0x46,0x1c,0x1b,0xe9,0x09,0xdc,0x0a,0xc0,0x74, +/*00003f50:*/0x11,0xfe,0xc8,0x74,0x3d,0xfe,0xc8,0x74,0x65,0x8b,0xec,0xc6,0x46,0x1c,0x00,0xe9, +/*00003f60:*/0xf4,0xdb,0xb8,0x20,0x00,0xf6,0xc1,0x01,0x74,0x06,0x83,0xc0,0x60,0x83,0xc0,0x00, +/*00003f70:*/0xf6,0xc1,0x02,0x74,0x03,0x83,0xc0,0x3a,0xf6,0xc1,0x04,0x74,0x03,0x05,0x03,0x03, +/*00003f80:*/0x83,0xc0,0x3f,0xc1,0xe8,0x06,0x8b,0xec,0x89,0x46,0x10,0xc6,0x46,0x1c,0x1c,0xe9, +/*00003f90:*/0xc4,0xdb,0x8b,0xfb,0x83,0xc7,0x20,0xf6,0xc1,0x01,0x74,0x03,0xe8,0x8d,0x00,0xf6, +/*00003fa0:*/0xc1,0x02,0x74,0x03,0xe8,0x2b,0x01,0xf6,0xc1,0x04,0x75,0x02,0xeb,0x03,0xe8,0x5d, +/*00003fb0:*/0x02,0x26,0x89,0x7f,0x06,0x8b,0xec,0xc6,0x46,0x1c,0x1c,0xe9,0x98,0xdb,0xf6,0xc1, +/*00003fc0:*/0x01,0x74,0x06,0xe8,0xaf,0x4c,0xe8,0x57,0x01,0xf6,0xc1,0x02,0x74,0x03,0xe8,0xe6, +/*00003fd0:*/0x01,0xf6,0xc1,0x04,0x74,0x03,0xe8,0x82,0x02,0xeb,0xda,0x8a,0xc4,0xee,0x42,0xec, +/*00003fe0:*/0xaa,0xfe,0xc4,0x4a,0xe2,0xf5,0xc3,0xe8,0x0c,0x39,0xbd,0xc0,0x03,0xb9,0x15,0x00, +/*00003ff0:*/0x32,0xe4,0xec,0x87,0xea,0x8a,0xc4,0xee,0x42,0xec,0xaa,0xfe,0xc4,0x4a,0x87,0xea, +/*00004000:*/0xe2,0xf0,0xec,0x87,0xea,0xb0,0x20,0xee,0xc3,0x26,0x8a,0x05,0x88,0x04,0x47,0x46, +/*00004010:*/0xe2,0xf7,0xc3,0x26,0x8a,0x25,0xef,0x47,0xfe,0xc0,0xe2,0xf7,0xc3,0xb2,0xc0,0x8a, +/*00004020:*/0xc4,0xee,0x26,0x8a,0x05,0x47,0xfe,0xc4,0xee,0xe2,0xf4,0xc3,0x9c,0xfa,0x51,0x57, +/*00004030:*/0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x07,0x8b,0xf7,0xe8,0xab,0x38,0xec,0x26,0x88,0x44, +/*00004040:*/0x01,0x26,0x89,0x54,0x41,0xb2,0xce,0xec,0x26,0x88,0x44,0x02,0xb2,0xcc,0xec,0x26, +/*00004050:*/0x88,0x44,0x09,0xb2,0xca,0xec,0x26,0x88,0x44,0x04,0xb2,0xc4,0xec,0x26,0x88,0x04, +/*00004060:*/0x83,0xc7,0x05,0xb9,0x04,0x00,0xb4,0x01,0xe8,0x70,0xff,0x26,0x8a,0x04,0xee,0x52, +/*00004070:*/0xe8,0x32,0x16,0xb2,0x57,0xec,0x26,0x88,0x44,0x5f,0xe8,0xc0,0x1e,0x26,0x8b,0x54, +/*00004080:*/0x41,0x8b,0xfe,0x83,0xc7,0x46,0x32,0xe4,0xb9,0x19,0x00,0xe8,0x4d,0xff,0x26,0x8a, +/*00004090:*/0x44,0x01,0xee,0xe8,0x99,0x1e,0x5a,0x8b,0xfe,0x83,0xc7,0x0a,0x26,0x8b,0x54,0x41, +/*000040a0:*/0x32,0xe4,0xb9,0x19,0x00,0xe8,0x33,0xff,0x26,0x8a,0x44,0x01,0xee,0xe8,0x37,0xff, +/*000040b0:*/0xb2,0xce,0x32,0xe4,0xb9,0x09,0x00,0xe8,0x21,0xff,0x26,0x8a,0x44,0x02,0xee,0x52, +/*000040c0:*/0xe8,0xe2,0x15,0xb2,0x57,0x26,0x8a,0x44,0x5f,0xee,0x5a,0x5f,0x59,0x83,0xc7,0x60, +/*000040d0:*/0x9d,0xc3,0x9c,0xfa,0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x02,0x51,0x57,0xe8,0xaa, +/*000040e0:*/0x37,0xa0,0x10,0x04,0x24,0x30,0xaa,0xbe,0x49,0x04,0xb9,0x1e,0x00,0xf3,0xa4,0xbe, +/*000040f0:*/0x84,0x04,0xb1,0x07,0xf3,0xa4,0xbe,0xa8,0x04,0xb1,0x04,0xf3,0xa4,0xbe,0x14,0x00, +/*00004100:*/0xb1,0x04,0xf3,0xa4,0xbe,0x74,0x00,0xb1,0x04,0xf3,0xa4,0xbe,0x7c,0x00,0xb1,0x04, +/*00004110:*/0xf3,0xa4,0xbe,0x0c,0x01,0xb1,0x04,0xf3,0xa4,0x5f,0x59,0x83,0xc7,0x3a,0x9d,0xc3, +/*00004120:*/0x9c,0xfa,0x26,0x8b,0x3f,0x03,0xfb,0x8b,0xf7,0x51,0xe8,0x02,0x1e,0x8b,0xfe,0x83, +/*00004130:*/0xc7,0x05,0xba,0xc4,0x03,0xb8,0x00,0x01,0xef,0xb0,0x01,0xb9,0x04,0x00,0xe8,0xd2, +/*00004140:*/0xfe,0x47,0xb2,0xc2,0x26,0x8a,0x44,0x09,0xee,0xb2,0xc4,0xb8,0x00,0x03,0xef,0x26, +/*00004150:*/0x8a,0x04,0xee,0x26,0x8b,0x54,0x41,0xb8,0x11,0x00,0xef,0xb1,0x19,0x32,0xc0,0xe8, +/*00004160:*/0xb1,0xfe,0x26,0x8a,0x44,0x01,0xee,0x57,0x52,0xe8,0x39,0x15,0xb2,0x57,0x52,0xe8, +/*00004170:*/0xcb,0x1d,0x8b,0xfe,0x83,0xc7,0x46,0x26,0x8b,0x54,0x41,0xb8,0x11,0x00,0xef,0xb1, +/*00004180:*/0x19,0x32,0xc0,0xe8,0x8d,0xfe,0x26,0x8a,0x44,0x01,0xee,0x5a,0x26,0x8a,0x44,0x5f, +/*00004190:*/0xee,0x5a,0x5f,0x80,0xc2,0x06,0x26,0x8a,0x44,0x04,0xee,0xec,0xb1,0x15,0x32,0xe4, +/*000041a0:*/0xe8,0x7a,0xfe,0xb0,0x20,0xee,0xb1,0x09,0x32,0xc0,0xb2,0xce,0xe8,0x64,0xfe,0x26, +/*000041b0:*/0x8a,0x44,0x02,0xee,0x59,0x9d,0xc3,0x9c,0xfa,0x26,0x8b,0x7f,0x02,0x03,0xfb,0x06, +/*000041c0:*/0x51,0xe8,0xc7,0x36,0x26,0x8a,0x05,0x80,0x26,0x10,0x04,0xcf,0x08,0x06,0x10,0x04, +/*000041d0:*/0x47,0xbe,0x49,0x04,0xb9,0x1e,0x00,0xe8,0x2f,0xfe,0xbe,0x84,0x04,0xb1,0x07,0xe8, +/*000041e0:*/0x27,0xfe,0xbe,0xa8,0x04,0xb1,0x04,0xe8,0x1f,0xfe,0xbe,0x14,0x00,0xb1,0x04,0xe8, +/*000041f0:*/0x17,0xfe,0xbe,0x74,0x00,0xb1,0x04,0xe8,0x0f,0xfe,0xbe,0x7c,0x00,0xb1,0x04,0xe8, +/*00004200:*/0x07,0xfe,0xbe,0x0c,0x01,0xb1,0x04,0xe8,0xff,0xfd,0x59,0x07,0x9d,0xc3,0x9c,0xfa, +/*00004210:*/0x8b,0xc7,0x2b,0xc3,0x26,0x89,0x47,0x04,0xe8,0xe2,0x36,0xb2,0xc0,0xb0,0x34,0xee, +/*00004220:*/0x42,0xec,0x26,0x88,0x05,0xe8,0x7d,0x14,0xb2,0x59,0xec,0xa8,0x20,0x74,0x27,0xba, +/*00004230:*/0xc8,0x03,0xec,0x26,0x88,0x45,0x01,0x50,0x4a,0x4a,0xec,0x26,0x88,0x45,0x02,0x83, +/*00004240:*/0xc7,0x03,0xb9,0x00,0x03,0x42,0x32,0xc0,0xee,0x42,0x42,0xe8,0xba,0xe2,0xaa,0xe2, +/*00004250:*/0xfa,0x58,0x4a,0xee,0x9d,0xc3,0xe8,0x66,0x2e,0x9d,0xc3,0x9c,0xfa,0x26,0x8b,0x77, +/*00004260:*/0x04,0x03,0xf3,0xe8,0x97,0x36,0xb2,0xc0,0xb0,0x34,0xee,0x26,0x8a,0x04,0xee,0x55, +/*00004270:*/0x83,0xec,0x02,0x8b,0xec,0xe8,0x67,0x1d,0xe8,0x2a,0x14,0xb2,0x59,0xec,0xa8,0x20, +/*00004280:*/0x74,0x2f,0xba,0xc6,0x03,0x26,0x8a,0x44,0x02,0xee,0x56,0x42,0x42,0x83,0xc6,0x03, +/*00004290:*/0x32,0xc0,0xee,0x42,0xb9,0x00,0x03,0x26,0x8a,0x04,0xe8,0x69,0xe2,0x46,0xe2,0xf7, +/*000042a0:*/0x5e,0xfe,0xca,0x26,0x8a,0x44,0x01,0xee,0xe8,0x35,0x1d,0x83,0xc4,0x02,0x5d,0x9d, +/*000042b0:*/0xc3,0xe8,0x36,0x2e,0xe8,0x29,0x1d,0x83,0xc4,0x02,0x5d,0x9d,0xc3,0x00,0x05,0x11, +/*000042c0:*/0x1c,0x08,0x0b,0x14,0x28,0x0e,0x18,0x2d,0x32,0x20,0x24,0x38,0x3f,0x00,0x05,0x08, +/*000042d0:*/0x0b,0x0e,0x11,0x14,0x18,0x1c,0x20,0x24,0x28,0x2d,0x32,0x38,0x3f,0x07,0x0c,0x10, +/*000042e0:*/0x15,0x1a,0x18,0x16,0x15,0x13,0x1c,0x25,0x2f,0x38,0x33,0x2e,0x2a,0x25,0x27,0x29, +/*000042f0:*/0x2a,0x2c,0x23,0x19,0x10,0x23,0x25,0x27,0x2a,0x2c,0x2b,0x2a,0x29,0x29,0x2d,0x32, +/*00004300:*/0x37,0x3b,0x39,0x37,0x34,0x32,0x33,0x34,0x35,0x35,0x31,0x2c,0x27,0x2f,0x30,0x32, +/*00004310:*/0x33,0x34,0x34,0x33,0x33,0x32,0x35,0x38,0x3a,0x3d,0x3c,0x3a,0x39,0x38,0x38,0x39, +/*00004320:*/0x39,0x3a,0x37,0x34,0x31,0x03,0x05,0x07,0x09,0x0b,0x0b,0x0a,0x09,0x08,0x0d,0x11, +/*00004330:*/0x15,0x19,0x17,0x15,0x13,0x11,0x11,0x12,0x13,0x14,0x0f,0x0b,0x07,0x10,0x10,0x12, +/*00004340:*/0x13,0x14,0x13,0x13,0x13,0x12,0x14,0x16,0x18,0x1a,0x19,0x18,0x17,0x16,0x17,0x17, +/*00004350:*/0x17,0x18,0x15,0x14,0x11,0x15,0x15,0x16,0x17,0x17,0x17,0x17,0x17,0x16,0x18,0x19, +/*00004360:*/0x1a,0x1b,0x1b,0x1a,0x19,0x19,0x19,0x19,0x19,0x1a,0x18,0x17,0x16,0x02,0x03,0x04, +/*00004370:*/0x05,0x07,0x06,0x06,0x05,0x05,0x07,0x0a,0x0c,0x0e,0x0d,0x0c,0x0b,0x09,0x0a,0x0a, +/*00004380:*/0x0b,0x0b,0x09,0x06,0x04,0x09,0x09,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0c,0x0d, +/*00004390:*/0x0e,0x0f,0x0f,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0c,0x0b,0x0a,0x0c,0x0c,0x0c, +/*000043a0:*/0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0e,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e, +/*000043b0:*/0x0e,0x0e,0x0e,0x0d,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000043c0:*/0x00,0x00,0x2a,0x00,0x2a,0x00,0x00,0x2a,0x2a,0x2a,0x00,0x00,0x2a,0x00,0x2a,0x2a, +/*000043d0:*/0x15,0x00,0x2a,0x2a,0x2a,0x15,0x15,0x15,0x15,0x15,0x3f,0x15,0x3f,0x15,0x15,0x3f, +/*000043e0:*/0x3f,0x3f,0x15,0x15,0x3f,0x15,0x3f,0x3f,0x3f,0x15,0x3f,0x3f,0x3f,0x00,0x00,0x00, +/*000043f0:*/0x05,0x05,0x05,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x14, +/*00004400:*/0x14,0x14,0x18,0x18,0x18,0x1c,0x1c,0x1c,0x20,0x20,0x20,0x24,0x24,0x24,0x28,0x28, +/*00004410:*/0x28,0x2d,0x2d,0x2d,0x32,0x32,0x32,0x38,0x38,0x38,0x3f,0x3f,0x3f,0x00,0x00,0x3f, +/*00004420:*/0x10,0x00,0x3f,0x1f,0x00,0x3f,0x2f,0x00,0x3f,0x3f,0x00,0x3f,0x3f,0x00,0x2f,0x3f, +/*00004430:*/0x00,0x1f,0x3f,0x00,0x10,0x3f,0x00,0x00,0x3f,0x10,0x00,0x3f,0x1f,0x00,0x3f,0x2f, +/*00004440:*/0x00,0x3f,0x3f,0x00,0x2f,0x3f,0x00,0x1f,0x3f,0x00,0x10,0x3f,0x00,0x00,0x3f,0x00, +/*00004450:*/0x00,0x3f,0x10,0x00,0x3f,0x1f,0x00,0x3f,0x2f,0x00,0x3f,0x3f,0x00,0x2f,0x3f,0x00, +/*00004460:*/0x1f,0x3f,0x00,0x10,0x3f,0x1f,0x1f,0x3f,0x27,0x1f,0x3f,0x2f,0x1f,0x3f,0x37,0x1f, +/*00004470:*/0x3f,0x3f,0x1f,0x3f,0x3f,0x1f,0x37,0x3f,0x1f,0x2f,0x3f,0x1f,0x27,0x3f,0x1f,0x1f, +/*00004480:*/0x3f,0x27,0x1f,0x3f,0x2f,0x1f,0x3f,0x37,0x1f,0x3f,0x3f,0x1f,0x37,0x3f,0x1f,0x2f, +/*00004490:*/0x3f,0x1f,0x27,0x3f,0x1f,0x1f,0x3f,0x1f,0x1f,0x3f,0x27,0x1f,0x3f,0x2f,0x1f,0x3f, +/*000044a0:*/0x37,0x1f,0x3f,0x3f,0x1f,0x37,0x3f,0x1f,0x2f,0x3f,0x1f,0x27,0x3f,0x2d,0x2d,0x3f, +/*000044b0:*/0x31,0x2d,0x3f,0x36,0x2d,0x3f,0x3a,0x2d,0x3f,0x3f,0x2d,0x3f,0x3f,0x2d,0x3a,0x3f, +/*000044c0:*/0x2d,0x36,0x3f,0x2d,0x31,0x3f,0x2d,0x2d,0x3f,0x31,0x2d,0x3f,0x36,0x2d,0x3f,0x3a, +/*000044d0:*/0x2d,0x3f,0x3f,0x2d,0x3a,0x3f,0x2d,0x36,0x3f,0x2d,0x31,0x3f,0x2d,0x2d,0x3f,0x2d, +/*000044e0:*/0x2d,0x3f,0x31,0x2d,0x3f,0x36,0x2d,0x3f,0x3a,0x2d,0x3f,0x3f,0x2d,0x3a,0x3f,0x2d, +/*000044f0:*/0x36,0x3f,0x2d,0x31,0x3f,0x00,0x00,0x1c,0x07,0x00,0x1c,0x0e,0x00,0x1c,0x15,0x00, +/*00004500:*/0x1c,0x1c,0x00,0x1c,0x1c,0x00,0x15,0x1c,0x00,0x0e,0x1c,0x00,0x07,0x1c,0x00,0x00, +/*00004510:*/0x1c,0x07,0x00,0x1c,0x0e,0x00,0x1c,0x15,0x00,0x1c,0x1c,0x00,0x15,0x1c,0x00,0x0e, +/*00004520:*/0x1c,0x00,0x07,0x1c,0x00,0x00,0x1c,0x00,0x00,0x1c,0x07,0x00,0x1c,0x0e,0x00,0x1c, +/*00004530:*/0x15,0x00,0x1c,0x1c,0x00,0x15,0x1c,0x00,0x0e,0x1c,0x00,0x07,0x1c,0x0e,0x0e,0x1c, +/*00004540:*/0x11,0x0e,0x1c,0x15,0x0e,0x1c,0x18,0x0e,0x1c,0x1c,0x0e,0x1c,0x1c,0x0e,0x18,0x1c, +/*00004550:*/0x0e,0x15,0x1c,0x0e,0x11,0x1c,0x0e,0x0e,0x1c,0x11,0x0e,0x1c,0x15,0x0e,0x1c,0x18, +/*00004560:*/0x0e,0x1c,0x1c,0x0e,0x18,0x1c,0x0e,0x15,0x1c,0x0e,0x11,0x1c,0x0e,0x0e,0x1c,0x0e, +/*00004570:*/0x0e,0x1c,0x11,0x0e,0x1c,0x15,0x0e,0x1c,0x18,0x0e,0x1c,0x1c,0x0e,0x18,0x1c,0x0e, +/*00004580:*/0x15,0x1c,0x0e,0x11,0x1c,0x14,0x14,0x1c,0x16,0x14,0x1c,0x18,0x14,0x1c,0x1a,0x14, +/*00004590:*/0x1c,0x1c,0x14,0x1c,0x1c,0x14,0x1a,0x1c,0x14,0x18,0x1c,0x14,0x16,0x1c,0x14,0x14, +/*000045a0:*/0x1c,0x16,0x14,0x1c,0x18,0x14,0x1c,0x1a,0x14,0x1c,0x1c,0x14,0x1a,0x1c,0x14,0x18, +/*000045b0:*/0x1c,0x14,0x16,0x1c,0x14,0x14,0x1c,0x14,0x14,0x1c,0x16,0x14,0x1c,0x18,0x14,0x1c, +/*000045c0:*/0x1a,0x14,0x1c,0x1c,0x14,0x1a,0x1c,0x14,0x18,0x1c,0x14,0x16,0x1c,0x00,0x00,0x10, +/*000045d0:*/0x04,0x00,0x10,0x08,0x00,0x10,0x0c,0x00,0x10,0x10,0x00,0x10,0x10,0x00,0x0c,0x10, +/*000045e0:*/0x00,0x08,0x10,0x00,0x04,0x10,0x00,0x00,0x10,0x04,0x00,0x10,0x08,0x00,0x10,0x0c, +/*000045f0:*/0x00,0x10,0x10,0x00,0x0c,0x10,0x00,0x08,0x10,0x00,0x04,0x10,0x00,0x00,0x10,0x00, +/*00004600:*/0x00,0x10,0x04,0x00,0x10,0x08,0x00,0x10,0x0c,0x00,0x10,0x10,0x00,0x0c,0x10,0x00, +/*00004610:*/0x08,0x10,0x00,0x04,0x10,0x08,0x08,0x10,0x0a,0x08,0x10,0x0c,0x08,0x10,0x0e,0x08, +/*00004620:*/0x10,0x10,0x08,0x10,0x10,0x08,0x0e,0x10,0x08,0x0c,0x10,0x08,0x0a,0x10,0x08,0x08, +/*00004630:*/0x10,0x0a,0x08,0x10,0x0c,0x08,0x10,0x0e,0x08,0x10,0x10,0x08,0x0e,0x10,0x08,0x0c, +/*00004640:*/0x10,0x08,0x0a,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x0a,0x08,0x10,0x0c,0x08,0x10, +/*00004650:*/0x0e,0x08,0x10,0x10,0x08,0x0e,0x10,0x08,0x0c,0x10,0x08,0x0a,0x10,0x0b,0x0b,0x10, +/*00004660:*/0x0c,0x0b,0x10,0x0d,0x0b,0x10,0x0f,0x0b,0x10,0x10,0x0b,0x10,0x10,0x0b,0x0f,0x10, +/*00004670:*/0x0b,0x0d,0x10,0x0b,0x0c,0x10,0x0b,0x0b,0x10,0x0c,0x0b,0x10,0x0d,0x0b,0x10,0x0f, +/*00004680:*/0x0b,0x10,0x10,0x0b,0x0f,0x10,0x0b,0x0d,0x10,0x0b,0x0c,0x10,0x0b,0x0b,0x10,0x0b, +/*00004690:*/0x0b,0x10,0x0c,0x0b,0x10,0x0d,0x0b,0x10,0x0f,0x0b,0x10,0x10,0x0b,0x0f,0x10,0x0b, +/*000046a0:*/0x0d,0x10,0x0b,0x0c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*000046b0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x8a,0xe0, +/*000046c0:*/0xba,0xcc,0x03,0xec,0x24,0xfe,0x0a,0xc4,0xb2,0xc2,0xee,0x58,0xc3,0xb0,0x01,0xe8, +/*000046d0:*/0xeb,0xff,0xb2,0xb4,0xe8,0x44,0x35,0xc3,0x32,0xc0,0xe8,0xe0,0xff,0xb2,0xd4,0xe8, +/*000046e0:*/0x39,0x35,0xc3,0xe8,0x9e,0x45,0xb2,0xc0,0x86,0xc4,0xee,0xeb,0x00,0xeb,0x00,0x86, +/*000046f0:*/0xc4,0xee,0xeb,0x00,0xeb,0x00,0xb0,0x20,0xee,0xc3,0x80,0x3e,0x49,0x04,0x07,0x7e, +/*00004700:*/0x16,0x26,0xf6,0x47,0x33,0x01,0x75,0x0f,0xb4,0x03,0x26,0xf6,0x47,0x09,0x01,0x75, +/*00004710:*/0x02,0xb4,0x07,0x88,0x26,0x49,0x04,0xc3,0xba,0xb4,0x03,0x80,0x0e,0x87,0x04,0x02, +/*00004720:*/0x26,0xf6,0x47,0x09,0x01,0x74,0x07,0xb2,0xd4,0x80,0x26,0x87,0x04,0xfd,0x89,0x16, +/*00004730:*/0x63,0x04,0xc7,0x06,0x4e,0x04,0x00,0x00,0xc6,0x06,0x62,0x04,0x00,0xb9,0x08,0x00, +/*00004740:*/0xbf,0x50,0x04,0x06,0x1e,0x07,0x33,0xc0,0xf3,0xab,0x07,0x26,0x8a,0x07,0x32,0xe4, +/*00004750:*/0xa3,0x4a,0x04,0x26,0x8a,0x47,0x01,0xa2,0x84,0x04,0x26,0x8a,0x47,0x02,0xa3,0x85, +/*00004760:*/0x04,0x26,0x8b,0x47,0x03,0xa3,0x4c,0x04,0x26,0x8b,0x47,0x14,0x86,0xc4,0xa3,0x60, +/*00004770:*/0x04,0xc3,0x80,0x0e,0x10,0x04,0x30,0xc7,0x06,0x63,0x04,0xb4,0x03,0xb8,0x07,0x00, +/*00004780:*/0xcd,0x42,0xc3,0x80,0x26,0x10,0x04,0xcf,0x80,0x0e,0x10,0x04,0x20,0xc7,0x06,0x63, +/*00004790:*/0x04,0xd4,0x03,0xb8,0x03,0x00,0xcd,0x42,0xc3,0x80,0x26,0x10,0x04,0xcf,0x80,0x0e, +/*000047a0:*/0x10,0x04,0x10,0xb8,0x01,0x00,0xcd,0x42,0xc3,0x80,0x0e,0x10,0x04,0x30,0xc7,0x06, +/*000047b0:*/0x63,0x04,0xb4,0x03,0xb8,0x07,0x00,0xcd,0x6d,0xc3,0x80,0x26,0x10,0x04,0xcf,0x80, +/*000047c0:*/0x0e,0x10,0x04,0x20,0xc7,0x06,0x63,0x04,0xd4,0x03,0xb8,0x03,0x00,0xcd,0x6d,0xc3, +/*000047d0:*/0x80,0x26,0x10,0x04,0xcf,0x80,0x0e,0x10,0x04,0x10,0xb8,0x01,0x00,0xcd,0x6d,0xc3, +/*000047e0:*/0x6a,0x00,0x02,0x01,0x04,0x01,0x82,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x20,0x01, +/*000047f0:*/0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0xa2,0x01,0xa3,0x01,0xa4,0x01, +/*00004800:*/0xa5,0x01,0xa6,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xc2,0x01, +/*00004810:*/0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0x00,0x01,0x83,0x01,0x84,0x01,0x85,0x01, +/*00004820:*/0x86,0x01,0x01,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x21,0x01,0x03,0x01,0x13,0x01, +/*00004830:*/0x14,0x01,0x15,0x01,0x22,0x01,0x05,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x23,0x01, +/*00004840:*/0x07,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x24,0x01,0x09,0x01,0x0a,0x01,0x30,0x01, +/*00004850:*/0xff,0xff,0x6a,0x00,0x6a,0x00,0x01,0x6a,0x29,0x64,0x0e,0x02,0x01,0x7a,0x00,0x01, +/*00004860:*/0x6a,0x29,0x64,0x0e,0x04,0x01,0x55,0x00,0x01,0x55,0x2f,0x80,0x10,0x82,0x01,0x6b, +/*00004870:*/0xa0,0x02,0xe2,0x18,0x28,0x08,0x0d,0x01,0x4b,0xa0,0x03,0xe2,0x18,0x28,0x08,0x0e, +/*00004880:*/0x01,0x5b,0xa0,0x04,0xe2,0x18,0x28,0x08,0x0f,0x01,0x7b,0xa0,0x05,0xe2,0x18,0x28, +/*00004890:*/0x08,0x20,0x01,0x3b,0xa0,0x06,0xe2,0x18,0x28,0x08,0x92,0x01,0x6c,0xa0,0x02,0xe3, +/*000048a0:*/0x1d,0x28,0x08,0x93,0x01,0x4c,0xa0,0x03,0xe3,0x1d,0x28,0x08,0x94,0x01,0x5c,0xa0, +/*000048b0:*/0x04,0xe3,0x1d,0x28,0x08,0x95,0x01,0x7c,0xa0,0x05,0xe3,0x1d,0x28,0x08,0x96,0x01, +/*000048c0:*/0x3c,0xa0,0x06,0xe3,0x1d,0x28,0x08,0xa2,0x01,0x6e,0xa0,0x02,0xe5,0x11,0x32,0x10, +/*000048d0:*/0xa3,0x01,0x4e,0xa0,0x03,0xe5,0x11,0x32,0x10,0xa4,0x01,0x5e,0xa0,0x04,0xe5,0x11, +/*000048e0:*/0x32,0x10,0xa5,0x01,0x7e,0xa0,0x05,0xe5,0x11,0x32,0x10,0xa6,0x01,0x3e,0xa0,0x06, +/*000048f0:*/0xe5,0x11,0x32,0x10,0xb2,0x01,0x6d,0xa0,0x02,0xe4,0x17,0x40,0x10,0xb3,0x01,0x4d, +/*00004900:*/0xa0,0x03,0xe4,0x17,0x40,0x10,0xb4,0x01,0x5d,0xa0,0x04,0xe4,0x17,0x40,0x10,0xb5, +/*00004910:*/0x01,0x7d,0xa0,0x05,0xe4,0x17,0x40,0x10,0xb6,0x01,0x3d,0xa0,0x06,0xe4,0x17,0x40, +/*00004920:*/0x10,0xc2,0x01,0x60,0xa0,0x02,0xe6,0x18,0x50,0x0e,0xc3,0x01,0x40,0xa0,0x03,0xe6, +/*00004930:*/0x18,0x50,0x0e,0xc4,0x01,0x50,0xa0,0x04,0xe6,0x18,0x50,0x0e,0xc5,0x01,0x70,0xa0, +/*00004940:*/0x05,0xe6,0x18,0x50,0x0e,0xc6,0x01,0x30,0xa0,0x06,0xe6,0x18,0x50,0x0e,0x00,0x01, +/*00004950:*/0x61,0xa0,0x02,0xe1,0x18,0x50,0x10,0x83,0x01,0x41,0xa0,0x03,0xe1,0x18,0x50,0x10, +/*00004960:*/0x84,0x01,0x51,0xa0,0x04,0xe1,0x18,0x50,0x10,0x85,0x01,0x71,0xa0,0x05,0xe1,0x18, +/*00004970:*/0x50,0x10,0x86,0x01,0x31,0xa0,0x06,0xe1,0x18,0x50,0x10,0x01,0x01,0x62,0xa0,0x02, +/*00004980:*/0x12,0x1d,0x50,0x10,0x10,0x01,0x42,0xa0,0x03,0x12,0x1d,0x50,0x10,0x11,0x01,0x52, +/*00004990:*/0xa0,0x04,0x12,0x1d,0x50,0x10,0x12,0x01,0x72,0xa0,0x05,0x12,0x1d,0x50,0x10,0x21, +/*000049a0:*/0x01,0x2f,0xa0,0x06,0x12,0x1d,0x50,0x10,0x03,0x01,0x63,0xa0,0x02,0x6a,0x29,0x64, +/*000049b0:*/0x0e,0x13,0x01,0x43,0xa0,0x03,0x6a,0x29,0x64,0x0e,0x14,0x01,0x53,0xa0,0x04,0x6a, +/*000049c0:*/0x29,0x64,0x0e,0x15,0x01,0x73,0xa0,0x05,0x6a,0x29,0x64,0x0e,0x22,0x01,0x3f,0xa0, +/*000049d0:*/0x06,0x6a,0x29,0x64,0x0e,0x05,0x01,0x64,0xa0,0x02,0x55,0x2f,0x80,0x10,0x16,0x01, +/*000049e0:*/0x44,0xa0,0x03,0x55,0x2f,0x80,0x10,0x17,0x01,0x54,0xa0,0x04,0x55,0x2f,0x80,0x10, +/*000049f0:*/0x18,0x01,0x74,0xa0,0x05,0x55,0x2f,0x80,0x10,0x23,0x01,0x34,0xa0,0x06,0x55,0x2f, +/*00004a00:*/0x80,0x10,0x07,0x01,0x66,0xa0,0x02,0x83,0x3f,0xa0,0x10,0x19,0x01,0x46,0xa0,0x03, +/*00004a10:*/0x83,0x3f,0xa0,0x10,0x1a,0x01,0x56,0xa0,0x04,0x83,0x3f,0xa0,0x10,0x1b,0x01,0x76, +/*00004a20:*/0xa0,0x05,0x83,0x3f,0xa0,0x10,0x24,0x01,0x36,0xa0,0x06,0x83,0x3f,0xa0,0x10,0xff, +/*00004a30:*/0x01,0x65,0xa0,0x02,0x12,0x1d,0x50,0x10,0x09,0x01,0x23,0xf0,0x01,0x00,0x18,0x84, +/*00004a40:*/0x10,0x0a,0x01,0x32,0xf0,0x01,0x00,0x2a,0x84,0x08,0x30,0x01,0x33,0xf0,0x01,0x00, +/*00004a50:*/0x2b,0x84,0x08,0xff,0xff,0x90,0x56,0x45,0x53,0x41,0x00,0x02,0x84,0x01,0x00,0x00, +/*00004a60:*/0x01,0x00,0x00,0x00,0xe0,0x47,0x00,0x00,0x00,0x00,0x00,0x01,0x78,0x4a,0x00,0x00, +/*00004a70:*/0x8e,0x4a,0x00,0x00,0x93,0x4a,0x00,0x00,0x41,0x54,0x49,0x20,0x54,0x65,0x63,0x68, +/*00004a80:*/0x6e,0x6f,0x6c,0x6f,0x67,0x69,0x65,0x73,0x20,0x49,0x6e,0x63,0x2e,0x00,0x52,0x31, +/*00004a90:*/0x30,0x30,0x00,0x30,0x31,0x2e,0x30,0x30,0x00,0x1a,0x00,0x05,0x03,0x40,0x00,0x40, +/*00004aa0:*/0x00,0x00,0xa0,0x00,0xa0,0xc7,0x4f,0x00,0x00,0x80,0x00,0x00,0x04,0x00,0x03,0x08, +/*00004ab0:*/0x10,0x04,0x04,0x01,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00004ac0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0xff,0x36,0x70,0x0f, +/*00004ad0:*/0xeb,0x05,0x2e,0xff,0x36,0x6e,0x0f,0x3c,0x16,0x72,0x01,0xc3,0xfc,0x32,0xe4,0xd1, +/*00004ae0:*/0xe0,0x93,0x2e,0xff,0xa7,0x18,0x56,0x8b,0xd8,0x1e,0x57,0x56,0x53,0x51,0x52,0xb9, +/*00004af0:*/0x80,0x00,0xba,0x14,0x00,0x66,0x26,0x81,0x3d,0x56,0x42,0x45,0x32,0x75,0x06,0xb9, +/*00004b00:*/0x00,0x01,0xba,0x22,0x00,0x57,0x33,0xc0,0xf3,0xab,0x5f,0x57,0x8c,0xc8,0x8e,0xd8, +/*00004b10:*/0x8b,0xca,0xbe,0x56,0x4a,0xfc,0xf3,0xa4,0x5f,0xe8,0xa5,0x04,0x26,0x89,0x45,0x12, +/*00004b20:*/0x26,0x8c,0x4d,0x08,0x26,0x8c,0x4d,0x10,0x81,0xfa,0x22,0x00,0x75,0x7a,0x57,0x8b, +/*00004b30:*/0xc7,0x05,0x00,0x01,0x26,0x8b,0x75,0x06,0x26,0x89,0x45,0x06,0x26,0x8c,0x45,0x08, +/*00004b40:*/0x8b,0xf8,0xe8,0x29,0x04,0x8b,0xc7,0x5f,0x57,0x26,0x8b,0x75,0x16,0x26,0x89,0x45, +/*00004b50:*/0x16,0x26,0x8c,0x45,0x18,0x8b,0xf8,0xe8,0x14,0x04,0x8b,0xc7,0x5f,0x57,0x26,0x8b, +/*00004b60:*/0x75,0x1a,0x26,0x89,0x45,0x1a,0x26,0x8c,0x45,0x1c,0x8b,0xf8,0xe8,0xff,0x03,0x8b, +/*00004b70:*/0xc7,0x5f,0x57,0x26,0x8b,0x75,0x1e,0x26,0x89,0x45,0x1e,0x26,0x8c,0x45,0x20,0x8b, +/*00004b80:*/0xf8,0xe8,0xea,0x03,0x5f,0x8b,0xc7,0x83,0xc0,0x22,0x26,0x8b,0x75,0x0e,0x26,0x89, +/*00004b90:*/0x45,0x0e,0x26,0x8c,0x45,0x10,0x8b,0xf8,0x8b,0x04,0x26,0x89,0x05,0x83,0xc6,0x02, +/*00004ba0:*/0x83,0xc7,0x02,0x83,0xf8,0xff,0x75,0xf0,0x5a,0x59,0x5b,0x5e,0x5f,0x1f,0xb8,0x4f, +/*00004bb0:*/0x00,0xc3,0x8b,0xd8,0x52,0x51,0x53,0x56,0x57,0x1e,0x55,0x80,0xe5,0x3f,0x57,0x51, +/*00004bc0:*/0x33,0xc0,0xb9,0x80,0x00,0xf3,0xab,0x59,0x5f,0x0e,0x1f,0xe8,0x4a,0x03,0xe8,0x5a, +/*00004bd0:*/0x03,0x0b,0xc0,0x75,0x05,0xb4,0x01,0xe9,0x9b,0x01,0x57,0x56,0x8d,0x36,0x99,0x4a, +/*00004be0:*/0xb9,0x32,0x00,0xf3,0xa4,0x5e,0x5f,0x06,0x1f,0x0a,0xc0,0x74,0x03,0x80,0x0d,0x01, +/*00004bf0:*/0x0b,0xdb,0x0f,0x84,0x74,0x01,0x2e,0xa1,0x52,0x56,0x89,0x45,0x08,0x89,0x45,0x0a, +/*00004c00:*/0xe8,0xf5,0xd4,0x74,0x05,0xc7,0x45,0x02,0x07,0x00,0x8c,0x4d,0x0e,0x89,0x5d,0x14, +/*00004c10:*/0xfe,0xc2,0x32,0xf6,0x8b,0xda,0xc1,0xe3,0x03,0x89,0x5d,0x12,0x2e,0x8a,0x6c,0x04, +/*00004c20:*/0x2e,0x8a,0x44,0x08,0x88,0x45,0x17,0x2e,0x80,0x7c,0x03,0xf0,0x75,0x4e,0xd1,0xe2, +/*00004c30:*/0x89,0x55,0x10,0x33,0xc0,0x88,0x45,0x1d,0xc6,0x45,0x1b,0x00,0xc7,0x05,0x0f,0x00, +/*00004c40:*/0xc6,0x45,0x02,0x06,0x88,0x45,0x03,0xc6,0x45,0x18,0x01,0x89,0x45,0x0a,0x2e,0xa1, +/*00004c50:*/0x56,0x56,0x89,0x45,0x08,0xb1,0x03,0x8b,0x45,0x12,0xd3,0xe8,0x89,0x45,0x12,0x8b, +/*00004c60:*/0x45,0x14,0x8a,0x4d,0x17,0x40,0xf6,0xf1,0x89,0x45,0x14,0x33,0xc0,0x89,0x45,0x04, +/*00004c70:*/0x89,0x45,0x06,0x89,0x45,0x0e,0x89,0x45,0x0c,0xe9,0xf7,0x00,0x80,0xfd,0x01,0x7e, +/*00004c80:*/0x6f,0xc6,0x45,0x18,0x01,0xb4,0x04,0xb0,0x08,0x8b,0xd3,0x80,0xfd,0x02,0x7e,0x5a, +/*00004c90:*/0xb4,0x06,0x03,0xd3,0xb0,0x0f,0xc6,0x45,0x1f,0x05,0xc6,0x45,0x21,0x05,0xc6,0x45, +/*00004ca0:*/0x23,0x05,0xc6,0x45,0x20,0x0a,0xc6,0x45,0x22,0x05,0xc6,0x45,0x24,0x00,0x80,0xfd, +/*00004cb0:*/0x03,0x7e,0x37,0xb0,0x10,0xc6,0x45,0x21,0x06,0xc6,0x45,0x20,0x0b,0xc6,0x45,0x22, +/*00004cc0:*/0x05,0x80,0xfd,0x04,0x7e,0x24,0x03,0xd3,0xb0,0x18,0xc6,0x45,0x1f,0x08,0xc6,0x45, +/*00004cd0:*/0x21,0x08,0xc6,0x45,0x23,0x08,0xc6,0x45,0x20,0x10,0xc6,0x45,0x22,0x08,0x83,0x25, +/*00004ce0:*/0xfb,0x80,0xfd,0x05,0x7e,0x04,0x03,0xd3,0xb0,0x20,0x88,0x45,0x19,0x88,0x65,0x1b, +/*00004cf0:*/0x89,0x55,0x10,0x8b,0xc2,0xf7,0x65,0x14,0x0b,0xc0,0x74,0x01,0x42,0xe8,0xc1,0x02, +/*00004d00:*/0x80,0x7d,0x19,0x04,0x75,0x06,0xc1,0xe2,0x02,0xb8,0x10,0x00,0x53,0x32,0xff,0x8a, +/*00004d10:*/0xda,0x33,0xd2,0xf7,0xf3,0x8b,0xd3,0x5b,0x0b,0xc0,0x74,0x4e,0x0a,0xe4,0x74,0x02, +/*00004d20:*/0xb0,0xff,0xfe,0xc8,0x88,0x45,0x1d,0x80,0x7d,0x19,0x04,0x7e,0x3d,0x81,0x0d,0x80, +/*00004d30:*/0x00,0x50,0x53,0x51,0x52,0xe8,0xff,0x25,0xc1,0xe0,0x04,0x89,0x45,0x2a,0x8b,0xd8, +/*00004d40:*/0x8b,0x45,0x14,0x8b,0x4d,0x10,0xf7,0xe1,0x03,0xda,0x89,0x45,0x2c,0x89,0x5d,0x2e, +/*00004d50:*/0xc1,0xe8,0x0a,0xc1,0xca,0x0a,0x83,0xe2,0xc0,0x0b,0xd0,0xe8,0x63,0x02,0xc1,0xe0, +/*00004d60:*/0x06,0x2b,0xc2,0x89,0x45,0x30,0x5a,0x59,0x5b,0x58,0x80,0x7d,0x19,0x04,0x74,0x03, +/*00004d70:*/0x83,0x0d,0x20,0x32,0xe4,0xb0,0x4f,0x5d,0x1f,0x5f,0x5e,0x5b,0x59,0x5a,0xc3,0x8b, +/*00004d80:*/0xd8,0x06,0x1e,0x57,0x56,0x52,0x51,0x55,0x53,0x0e,0x1f,0x8b,0xcb,0x8a,0xc7,0x24, +/*00004d90:*/0x80,0x80,0xe5,0x3f,0x83,0xf9,0x13,0x77,0x05,0x0a,0xc1,0xe9,0x1b,0x01,0xe8,0x05, +/*00004da0:*/0x02,0xe8,0x74,0x01,0x83,0x3c,0xff,0x0f,0x84,0x17,0x01,0xf6,0xc7,0x40,0x74,0x08, +/*00004db0:*/0x80,0x7c,0x04,0x01,0x0f,0x84,0x0a,0x01,0x8a,0x64,0x03,0x8a,0xef,0x80,0xe5,0x80, +/*00004dc0:*/0x0a,0xe4,0x75,0x18,0x8a,0x44,0x02,0x8a,0xe5,0x8b,0x4c,0x04,0x0a,0xcc,0x56,0xe8, +/*00004dd0:*/0xe7,0xd2,0x5e,0x0b,0xc0,0x0f,0x85,0xe9,0x00,0xe9,0x8c,0x00,0x80,0xfc,0xa0,0x74, +/*00004de0:*/0x08,0x8a,0x44,0x02,0x0a,0xc5,0xe9,0xd0,0x00,0x51,0x8b,0x4c,0x04,0xe8,0x5e,0x01, +/*00004df0:*/0x59,0x0a,0xc0,0x0f,0x84,0xcb,0x00,0xb8,0x62,0x00,0x0a,0xc5,0xe8,0x09,0xcd,0xf6, +/*00004e00:*/0xc5,0x80,0x75,0x5a,0x8a,0x64,0x06,0xfe,0xc4,0x8a,0x44,0x08,0xf6,0xe4,0x8a,0x54, +/*00004e10:*/0x07,0x32,0xf6,0xc1,0xe2,0x04,0xf7,0xe2,0x8b,0xca,0x8b,0x44,0x04,0x3c,0x01,0x75, +/*00004e20:*/0x04,0xd1,0xe9,0xeb,0x12,0x3c,0x02,0x74,0x0e,0xd1,0xe1,0x3c,0x05,0x75,0x02,0x03, +/*00004e30:*/0xca,0x3c,0x06,0x75,0x02,0xd1,0xe1,0x41,0x06,0x2e,0xa1,0x52,0x56,0x8e,0xc0,0x32, +/*00004e40:*/0xe4,0x50,0x51,0x8a,0xec,0xe8,0x13,0xd3,0x33,0xff,0x33,0xc0,0xb9,0x00,0x80,0xf3, +/*00004e50:*/0xab,0x59,0x58,0x80,0xc4,0x02,0xe2,0xe9,0x32,0xed,0xe8,0xfe,0xd2,0x07,0x33,0xff, +/*00004e60:*/0x8b,0x4c,0x04,0xb0,0x00,0xe8,0x24,0xc4,0x58,0x50,0xe8,0x69,0xd2,0xe8,0x1b,0x2a, +/*00004e70:*/0x0e,0x07,0x26,0x8a,0x44,0x02,0xa2,0x49,0x04,0x26,0x8a,0x44,0x06,0xa2,0x84,0x04, +/*00004e80:*/0x32,0xe4,0x26,0x8a,0x44,0x07,0xa3,0x4a,0x04,0x26,0x8a,0x44,0x08,0xa3,0x85,0x04, +/*00004e90:*/0xbb,0x1d,0x2d,0x83,0xf8,0x10,0x74,0x17,0x83,0xf8,0x0e,0x75,0x0f,0x06,0xe8,0x62, +/*00004ea0:*/0x42,0x8c,0x06,0x0e,0x01,0x89,0x2e,0x0c,0x01,0x07,0xeb,0x0b,0xbb,0x0a,0x25,0x8c, +/*00004eb0:*/0x0e,0x0e,0x01,0x89,0x1e,0x0c,0x01,0xeb,0x05,0x32,0xe4,0xe8,0x4a,0xcc,0x32,0xe4, +/*00004ec0:*/0xeb,0x02,0xb4,0x01,0xb0,0x4f,0x5b,0x5d,0x59,0x5a,0x5e,0x5f,0x1f,0x07,0xc3,0xb8, +/*00004ed0:*/0x00,0x0f,0xe8,0x33,0xcc,0x1e,0x56,0x50,0x24,0x7f,0x0e,0x1f,0x8d,0x36,0x52,0x48, +/*00004ee0:*/0x8a,0xd8,0xb4,0x01,0x83,0x3c,0xff,0x74,0x0c,0x38,0x5c,0x02,0x74,0x05,0x83,0xc6, +/*00004ef0:*/0x09,0xeb,0xf1,0x8b,0x1c,0x32,0xe4,0x5e,0xf7,0xc6,0x80,0x00,0x74,0x04,0x81,0xcb, +/*00004f00:*/0x00,0x80,0xe8,0xe6,0xd1,0x74,0x04,0x81,0xcb,0x00,0x40,0x5e,0x1f,0xb0,0x4f,0xc3, +/*00004f10:*/0x8b,0xd8,0xe8,0xb6,0x00,0xb0,0x4f,0xc3,0x8d,0x36,0x52,0x48,0x83,0x3c,0xff,0x74, +/*00004f20:*/0x09,0x39,0x0c,0x74,0x05,0x83,0xc6,0x09,0xeb,0xf2,0xc3,0x33,0xc0,0x83,0x3c,0xff, +/*00004f30:*/0x74,0x3b,0x80,0x7c,0x03,0xf0,0x75,0x13,0x8a,0x54,0x07,0xfe,0xca,0x8a,0x44,0x06, +/*00004f40:*/0xfe,0xc0,0xf6,0x64,0x08,0x48,0x8b,0xd8,0xb0,0x80,0xc3,0x8b,0x4c,0x04,0x57,0x56, +/*00004f50:*/0x06,0x1e,0x83,0xec,0x3e,0x8b,0xec,0xe8,0x3c,0xb7,0x8a,0x46,0x02,0x8b,0x5e,0x26, +/*00004f60:*/0x8a,0x56,0x07,0x8a,0x66,0x3d,0x83,0xc4,0x3e,0x1f,0x07,0x5e,0x5f,0xc3,0x8a,0x04, +/*00004f70:*/0x26,0x88,0x05,0x46,0x47,0x3c,0x00,0x75,0xf5,0xc3,0xbb,0x52,0x53,0x2e,0x8e,0x1e, +/*00004f80:*/0x58,0x56,0x2e,0x8b,0x16,0x26,0x01,0x89,0x57,0x08,0x2e,0x8b,0x16,0x22,0x01,0x89, +/*00004f90:*/0x57,0x0a,0x2e,0x03,0x5f,0x06,0xe8,0x0c,0x07,0x83,0x3f,0xff,0x74,0x07,0x88,0x77, +/*00004fa0:*/0x01,0x43,0x43,0xe2,0xf4,0xc3,0x50,0x53,0xbb,0x28,0x02,0xe8,0x3e,0x08,0x24,0x7f, +/*00004fb0:*/0xe8,0x94,0x07,0xbb,0x00,0x0b,0xe8,0x33,0x08,0x0c,0x01,0xe8,0x89,0x07,0x5b,0x58, +/*00004fc0:*/0xc3,0x53,0xe8,0x3f,0x23,0x5b,0xc3,0xe8,0x01,0x00,0xcb,0xe8,0x1d,0xd1,0x74,0x03, +/*00004fd0:*/0xb4,0x03,0xc3,0xe8,0x22,0xd1,0x74,0x10,0x0a,0xff,0x75,0x0c,0x50,0x53,0x52,0x80, +/*00004fe0:*/0xf3,0x01,0xe8,0x03,0x00,0x5a,0x5b,0x58,0x8b,0xc2,0xe8,0xb8,0x06,0x50,0xb2,0x54, +/*00004ff0:*/0xe8,0x96,0x06,0xa8,0x08,0x58,0x74,0x2f,0xb2,0x38,0x0a,0xdb,0x74,0x0a,0xb2,0x3c, +/*00005000:*/0x80,0xfb,0x01,0x74,0x03,0xb4,0x01,0xc3,0x0a,0xff,0x75,0x0c,0x50,0xd1,0xe0,0xef, +/*00005010:*/0x42,0x42,0x40,0xef,0x5a,0x32,0xe4,0xc3,0x80,0xff,0x01,0x75,0xe8,0xe8,0x70,0x06, +/*00005020:*/0xd1,0xe8,0x8b,0xd0,0x32,0xe4,0xc3,0xb2,0x38,0x0a,0xdb,0x74,0x0a,0xb2,0x3c,0x80, +/*00005030:*/0xfb,0x01,0x74,0x03,0xb4,0x01,0xc3,0x0a,0xff,0x75,0x11,0x50,0xc1,0xe0,0x03,0xe8, +/*00005040:*/0x55,0x06,0xef,0x42,0x42,0x04,0x04,0xef,0x5a,0x32,0xe4,0xc3,0x80,0xff,0x01,0x75, +/*00005050:*/0xe3,0xe8,0x3c,0x06,0xc1,0xe8,0x03,0x8b,0xd0,0x32,0xe4,0xc3,0x1e,0x56,0x50,0x51, +/*00005060:*/0xb9,0x3c,0x00,0x2b,0xc0,0x8e,0xd8,0xbe,0x02,0x00,0xad,0x83,0xc6,0x02,0x0b,0xc0, +/*00005070:*/0x74,0x05,0x3d,0x00,0xa0,0x72,0x02,0xe2,0xf1,0x59,0x58,0x5e,0x1f,0x72,0x05,0x8b, +/*00005080:*/0xd8,0x33,0xc0,0xc3,0x8b,0xd8,0xf6,0xc1,0x0f,0x74,0x70,0x8a,0xc2,0x3c,0x02,0x77, +/*00005090:*/0x6a,0x75,0x17,0xf6,0xc1,0x08,0x74,0x12,0x60,0x06,0x1e,0x06,0x1f,0x32,0xc0,0x2e, +/*000050a0:*/0x8e,0x06,0x54,0x56,0xe8,0x15,0x24,0x1f,0x07,0x61,0x3c,0x01,0x75,0x15,0x60,0x8b, +/*000050b0:*/0xfb,0xb8,0x04,0x4f,0x32,0xd2,0xe8,0x4f,0xca,0x8b,0xcb,0xc1,0xe1,0x05,0x33,0xc0, +/*000050c0:*/0xf3,0xab,0x61,0x50,0xb4,0x1c,0xe8,0x3f,0xca,0x58,0xf6,0xc1,0x08,0x74,0x28,0x0a, +/*000050d0:*/0xc0,0x75,0x06,0x81,0xc3,0x39,0x00,0xeb,0x1e,0xfe,0xc8,0x75,0x16,0x57,0x33,0xff, +/*000050e0:*/0x26,0x87,0x7f,0x06,0x1e,0x32,0xc0,0x2e,0x8e,0x1e,0x54,0x56,0xe8,0x36,0x23,0x1f, +/*000050f0:*/0x5f,0xeb,0x04,0xfe,0xc8,0x75,0x04,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b, +/*00005100:*/0xd8,0xe8,0x85,0xd0,0x75,0x04,0xb8,0x4f,0x02,0xc3,0x3c,0x03,0x0f,0x87,0xce,0x00, +/*00005110:*/0xa8,0x01,0x75,0x4c,0x0a,0xc0,0x74,0x0e,0xe8,0x67,0x22,0x0f,0xb6,0xd8,0x8b,0xc1, +/*00005120:*/0x33,0xd2,0xf7,0xf3,0x8b,0xc8,0xc1,0xe9,0x03,0x49,0x80,0xe1,0xfe,0x53,0xbb,0x00, +/*00005130:*/0x02,0xe8,0xbd,0x06,0x5b,0xfe,0xc0,0x32,0xe4,0x3b,0xc1,0x76,0x02,0x8b,0xc8,0x81, +/*00005140:*/0xf9,0xfc,0x03,0x7e,0x04,0xb8,0x4f,0x02,0xc3,0x1e,0xe8,0x3e,0x27,0x89,0x0e,0x4a, +/*00005150:*/0x04,0x1f,0x53,0xbb,0x2c,0x02,0x66,0x0f,0xb7,0xc1,0xe8,0x5c,0x06,0x5b,0xeb,0x44, +/*00005160:*/0xa8,0x02,0x74,0x40,0x53,0xbb,0x08,0x02,0xe8,0xc5,0x06,0x5b,0x25,0xff,0x07,0x40, +/*00005170:*/0x8b,0xd8,0xb9,0xfc,0x03,0xc1,0xe1,0x03,0x53,0x51,0xe8,0x05,0x22,0x32,0xe4,0xf7, +/*00005180:*/0xe1,0x66,0x33,0xdb,0x8b,0xd8,0xe8,0x38,0xfe,0x66,0xc1,0xe0,0x10,0x66,0x33,0xd2, +/*00005190:*/0x66,0xf7,0xf3,0x66,0x33,0xd2,0x59,0x5b,0x66,0x3b,0xc3,0x8b,0xc1,0x73,0x10,0x83, +/*000051a0:*/0xe9,0x20,0xeb,0xd4,0x1e,0xe8,0xe3,0x26,0xa1,0x4a,0x04,0x1f,0xc1,0xe0,0x03,0x8b, +/*000051b0:*/0xc8,0xe8,0xce,0x21,0x32,0xe4,0xf7,0xe1,0x66,0x33,0xdb,0x8b,0xd8,0xe8,0x01,0xfe, +/*000051c0:*/0x66,0xc1,0xe0,0x10,0x66,0x33,0xd2,0x66,0xf7,0xf3,0x66,0x8b,0xd0,0x66,0xc1,0xea, +/*000051d0:*/0x10,0x0b,0xd2,0x74,0x03,0xb8,0xff,0xff,0x8b,0xd0,0xb8,0x4f,0x00,0xc3,0xb8,0x4f, +/*000051e0:*/0x01,0xc3,0x8b,0xd8,0xe8,0xa2,0xcf,0x75,0x04,0xb8,0x4f,0x02,0xc3,0x32,0xff,0xa8, +/*000051f0:*/0x7f,0x75,0x47,0x1e,0x66,0x60,0x50,0xe8,0x91,0x26,0xa1,0x4a,0x04,0xf7,0xe2,0x52, +/*00005200:*/0x50,0x66,0x5a,0x66,0xc1,0xe2,0x03,0x80,0xe1,0xf8,0x66,0x0f,0xb7,0xf1,0x66,0x03, +/*00005210:*/0xf2,0x66,0x33,0xff,0xe8,0x6b,0x21,0x0f,0xb6,0xc8,0x66,0x03,0xfe,0xe2,0xfb,0x58, +/*00005220:*/0xe8,0x82,0x04,0x3c,0x80,0x75,0x03,0xe8,0xaa,0xbb,0x53,0xbb,0x24,0x02,0x66,0x8b, +/*00005230:*/0xc7,0xe8,0x85,0x05,0x5b,0x66,0x61,0x1f,0xeb,0x3d,0xfe,0xc8,0x75,0x3d,0x1e,0x66, +/*00005240:*/0x50,0x53,0xbb,0x24,0x02,0xe8,0x1a,0x06,0x5b,0x66,0x25,0xff,0xff,0xff,0x07,0x66, +/*00005250:*/0x50,0xe8,0x37,0x26,0x8b,0x0e,0x4a,0x04,0xe8,0x27,0x21,0x0f,0xb6,0xc0,0x8b,0xd8, +/*00005260:*/0xc1,0xe0,0x03,0xf7,0xe1,0x8b,0xc8,0x58,0x5a,0xf7,0xf1,0x92,0x52,0x33,0xd2,0xf7, +/*00005270:*/0xf3,0x5a,0x8b,0xc8,0x66,0x58,0x1f,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b, +/*00005280:*/0xd8,0x0a,0xdb,0x75,0x16,0x51,0x52,0xb1,0x02,0x80,0xff,0x06,0x7e,0x02,0xfe,0xc1, +/*00005290:*/0xb0,0x02,0xe8,0xf7,0xbf,0x5a,0x59,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x13, +/*000052a0:*/0xb7,0x06,0x52,0xb2,0x59,0xe8,0xe1,0x03,0x5a,0xa8,0x01,0x74,0x02,0xb7,0x08,0xb8, +/*000052b0:*/0x4f,0x00,0xc3,0x33,0xc0,0xc3,0x8b,0xd8,0xf6,0xc3,0x7f,0x74,0x09,0x80,0xfb,0x01, +/*000052c0:*/0x74,0x04,0xb8,0x4f,0x02,0xc3,0x81,0xf9,0x00,0x01,0x77,0x6c,0x81,0xfa,0xff,0x00, +/*000052d0:*/0x77,0x66,0x8b,0xc2,0x03,0xc1,0x3d,0x00,0x01,0x77,0x5d,0x51,0x52,0x57,0x80,0xfb, +/*000052e0:*/0x01,0x74,0x39,0x8a,0xc2,0xe8,0xbd,0x03,0xb2,0xb0,0xee,0x80,0xfb,0x80,0x75,0x03, +/*000052f0:*/0xe8,0xe1,0xba,0xb2,0x59,0xec,0xa8,0x01,0x75,0x13,0xb2,0xb4,0x66,0x26,0x8b,0x05, +/*00005300:*/0x66,0xc1,0xe0,0x02,0x66,0xef,0x83,0xc7,0x04,0xe2,0xf1,0xeb,0x24,0xb2,0xb4,0x66, +/*00005310:*/0x26,0x8b,0x05,0x66,0xef,0x83,0xc7,0x04,0xe2,0xf5,0xeb,0x15,0x8a,0xc2,0xe8,0x84, +/*00005320:*/0x03,0xb2,0xb2,0xee,0xb2,0xb4,0x66,0xed,0x66,0x26,0x89,0x05,0x83,0xc7,0x04,0xe2, +/*00005330:*/0xf5,0x5f,0x5a,0x59,0xb8,0x4f,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x8b,0xd8,0x0a,0xc0, +/*00005340:*/0x75,0x0c,0x0e,0x07,0xbf,0x52,0x53,0xb9,0xb7,0x01,0xb8,0x4f,0x00,0xc3,0xb8,0x4f, +/*00005350:*/0x01,0xc3,0x26,0x00,0x94,0x00,0xe0,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x10,0xf0, +/*00005360:*/0x16,0xf0,0x54,0xf0,0x38,0xf0,0x3c,0xf0,0x5c,0xf0,0x00,0xf0,0x04,0xf0,0xb0,0xf0, +/*00005370:*/0xb2,0xf0,0xb4,0xf0,0xff,0xff,0xff,0xff,0x56,0x52,0xe8,0x4a,0x01,0x00,0x00,0x66, +/*00005380:*/0x87,0xd6,0x0a,0xff,0x75,0x1e,0xb2,0x10,0xec,0xa8,0x08,0x74,0x07,0x5a,0x5e,0x66, +/*00005390:*/0xb8,0x4f,0x03,0xc3,0x66,0x8b,0xc6,0xb2,0x38,0x0a,0xdb,0x74,0x0e,0xb2,0x3c,0x80, +/*000053a0:*/0xfb,0x01,0x74,0x07,0x5a,0x5e,0x66,0xb8,0x4f,0x01,0xc3,0x50,0x52,0xb2,0x54,0xec, +/*000053b0:*/0xa8,0x08,0x5a,0x58,0x74,0x15,0x66,0xd1,0xe0,0x66,0x8b,0xf0,0xfe,0xc0,0x66,0x50, +/*000053c0:*/0x66,0x56,0x58,0xef,0x5a,0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x66,0xd1,0xe0,0x66,0xd1, +/*000053d0:*/0xe0,0x66,0xd1,0xe0,0x66,0x8b,0xf0,0x04,0x04,0x66,0x50,0x66,0x56,0x58,0xef,0x5a, +/*000053e0:*/0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x56,0xe8,0xdd,0x00,0x00,0x00,0x52,0x66,0x8b,0xd6, +/*000053f0:*/0xb2,0x53,0xec,0xa8,0x01,0x5a,0x75,0x06,0x5e,0x66,0xb8,0x4f,0x02,0xc3,0xf6,0xc3, +/*00005400:*/0x7f,0x74,0x06,0x5e,0x66,0xb8,0x4f,0x01,0xc3,0x50,0x51,0x52,0x66,0x52,0x66,0x51, +/*00005410:*/0x59,0xc1,0xe1,0x02,0x66,0x8b,0xd6,0xe8,0x9b,0x00,0x00,0x00,0xb2,0x00,0xb8,0x24, +/*00005420:*/0x02,0x00,0x00,0xef,0xb2,0x04,0x8b,0xc1,0xef,0x5a,0x59,0x58,0x5e,0x66,0xb8,0x4f, +/*00005430:*/0x00,0xc3,0xf6,0xc3,0x7f,0x74,0x0a,0x80,0xfb,0x01,0x74,0x05,0x66,0xb8,0x4f,0x02, +/*00005440:*/0xc3,0x66,0x81,0xf9,0x00,0x01,0x77,0x0c,0x66,0x8b,0xc2,0x66,0x03,0xc1,0x66,0x3d, +/*00005450:*/0x00,0x01,0x76,0x05,0x66,0xb8,0x4f,0x01,0xc3,0x56,0x53,0x51,0x52,0x57,0xe8,0x66, +/*00005460:*/0x00,0x00,0x00,0x8a,0xc2,0x66,0x8b,0xd6,0x80,0xfb,0x01,0x74,0x30,0xb2,0xb0,0xee, +/*00005470:*/0xe8,0x42,0x00,0x00,0x00,0xb2,0x59,0xec,0xa8,0x01,0x75,0x12,0xb2,0xb4,0x26,0x8b, +/*00005480:*/0x07,0xc1,0xe0,0x02,0xef,0x83,0xc7,0x04,0x66,0x49,0x75,0xf2,0xeb,0x1f,0xb2,0xb4, +/*00005490:*/0x26,0x8b,0x07,0xef,0x83,0xc7,0x04,0x66,0x49,0x75,0xf5,0xeb,0x10,0xb2,0xb2,0xee, +/*000054a0:*/0xb2,0xb4,0xed,0x26,0x89,0x07,0x83,0xc7,0x04,0x66,0x49,0x75,0xf5,0x5f,0x5a,0x59, +/*000054b0:*/0x5b,0x5e,0x66,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x80,0x75,0x0c,0xb2,0x5c,0xec,0xa8, +/*000054c0:*/0x01,0x75,0xfb,0xec,0xa8,0x01,0x74,0xfb,0xc3,0x50,0x51,0x52,0x57,0xe8,0x00,0x00, +/*000054d0:*/0x00,0x00,0x5f,0x66,0x2e,0x8b,0x97,0x88,0xfe,0xff,0xff,0x66,0x2e,0x8b,0x8f,0x8a, +/*000054e0:*/0xfe,0xff,0xff,0x66,0x8b,0xf2,0xb2,0x16,0x66,0xed,0x66,0x3b,0xc1,0x74,0x10,0xb6, +/*000054f0:*/0xff,0x66,0xed,0x66,0x3b,0xc1,0x74,0x07,0xfe,0xce,0x75,0xf5,0x66,0x8b,0xd6,0x32, +/*00005500:*/0xd2,0x66,0x8b,0xf2,0x5f,0x5a,0x59,0x58,0xc3,0x8b,0xd8,0x0a,0xdb,0x75,0x07,0xbb, +/*00005510:*/0x10,0x07,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x04,0xe8,0x0e,0x00,0xc3,0x80, +/*00005520:*/0xfb,0x02,0x75,0x04,0xe8,0x2c,0x00,0xc3,0xb8,0x4f,0x01,0xc3,0x51,0x53,0x80,0xff, +/*00005530:*/0x08,0x75,0x05,0xb8,0x4f,0x02,0xeb,0x18,0x33,0xc9,0x86,0xfb,0x83,0xe3,0x07,0x74, +/*00005540:*/0x04,0x0f,0xbc,0xcb,0x41,0x80,0xe1,0x03,0xb0,0x0a,0xe8,0x3f,0xbd,0xb8,0x4f,0x00, +/*00005550:*/0x5b,0x59,0xc3,0x51,0xb0,0x0a,0xb5,0x01,0xe8,0x31,0xbd,0xb0,0x80,0xd2,0xc0,0x24, +/*00005560:*/0x7f,0x59,0x8a,0xf8,0xb8,0x4f,0x00,0xc3,0x8b,0xd8,0x0a,0xdb,0x75,0x4d,0x52,0xe8, +/*00005570:*/0x33,0x01,0xb2,0x20,0xed,0xa9,0x0f,0x0b,0x5a,0xa8,0x03,0x74,0x04,0xb7,0x00,0xeb, +/*00005580:*/0x24,0xa8,0x08,0x74,0x04,0xb7,0x02,0xeb,0x1c,0xf6,0xc4,0x03,0x74,0x04,0xb7,0x04, +/*00005590:*/0xeb,0x13,0xf6,0xc4,0x08,0x74,0x04,0xb7,0x06,0xeb,0x0a,0xa8,0x04,0x74,0x04,0xb7, +/*000055a0:*/0x03,0xeb,0x02,0xb7,0x00,0xb0,0x0b,0xe8,0xe2,0xbc,0xf6,0xc3,0x0e,0x74,0x06,0x80, +/*000055b0:*/0xe3,0x0e,0x80,0xcb,0x02,0xb7,0x02,0xb8,0x4f,0x00,0xc3,0x80,0xfb,0x01,0x75,0x53, +/*000055c0:*/0x52,0xe8,0xe1,0x00,0xb2,0x20,0xed,0xa9,0x0f,0x0b,0x75,0x03,0x5a,0xeb,0x44,0x51, +/*000055d0:*/0x53,0x8c,0xc2,0xb9,0x80,0x00,0xa8,0x03,0x74,0x04,0xb7,0x00,0xeb,0x24,0xa8,0x08, +/*000055e0:*/0x74,0x04,0xb7,0x02,0xeb,0x1c,0xf6,0xc4,0x03,0x74,0x04,0xb7,0x04,0xeb,0x13,0xf6, +/*000055f0:*/0xc4,0x08,0x74,0x04,0xb7,0x06,0xeb,0x0a,0xa8,0x04,0x74,0x04,0xb7,0x03,0xeb,0x02, +/*00005600:*/0xb7,0x00,0xb0,0x0b,0xe8,0x85,0xbc,0x5b,0x59,0x5a,0xb8,0x4f,0x00,0x26,0x80,0x3d, +/*00005610:*/0x00,0x74,0x03,0xb8,0x4f,0x01,0xc3,0x90,0xe7,0x4a,0xb2,0x4b,0x7f,0x4d,0xcf,0x4e, +/*00005620:*/0x5c,0x50,0x10,0x4f,0xff,0x50,0xe2,0x51,0x7f,0x52,0xb6,0x52,0x3c,0x53,0x44,0x56, +/*00005630:*/0x44,0x56,0x44,0x56,0x44,0x56,0x44,0x56,0x09,0x55,0x44,0x56,0x44,0x56,0x44,0x56, +/*00005640:*/0x44,0x56,0x68,0x55,0x8b,0xd8,0xc3,0x90,0x50,0x4d,0x49,0x44,0x0d,0x1b,0x5e,0x56, +/*00005650:*/0x00,0x00,0x00,0xa0,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0x00,0x00,0x00,0x50,0x1e, +/*00005660:*/0x2e,0x8e,0x1e,0x58,0x56,0x8c,0xd8,0xa3,0x98,0x1b,0xa3,0xa8,0x1b,0xa3,0xba,0x1b, +/*00005670:*/0x2e,0x8e,0x1e,0x50,0x56,0xa3,0xaa,0x04,0x1f,0x58,0xcb,0x52,0xe8,0x18,0x00,0xee, +/*00005680:*/0x5a,0xc3,0x52,0xe8,0x11,0x00,0xef,0x5a,0xc3,0x52,0xe8,0x0a,0x00,0xec,0x5a,0xc3, +/*00005690:*/0x52,0xe8,0x03,0x00,0xed,0x5a,0xc3,0x9c,0x57,0x32,0xf6,0x8b,0xfa,0xe8,0x05,0x00, +/*000056a0:*/0x03,0xd7,0x5f,0x9d,0xc3,0x9c,0x2e,0x8b,0x16,0x26,0x01,0x0b,0xd2,0x74,0x03,0xe8, +/*000056b0:*/0x02,0x00,0x9d,0xc3,0x66,0x50,0x53,0x2e,0x8b,0x1e,0x22,0x01,0x33,0xd2,0xe8,0x64, +/*000056c0:*/0x00,0x66,0x2e,0x3b,0x06,0x70,0x01,0x75,0x09,0xb2,0x14,0xe8,0x57,0x00,0x8a,0xf4, +/*000056d0:*/0xeb,0x0d,0x83,0xc3,0x08,0x80,0xff,0x09,0x72,0xe2,0x2e,0x8b,0x16,0x26,0x01,0x32, +/*000056e0:*/0xd2,0x5b,0x66,0x58,0xc3,0x66,0x50,0x53,0x2e,0x8b,0x1e,0x22,0x01,0x33,0xd2,0xe8, +/*000056f0:*/0x33,0x00,0x66,0x2e,0x3b,0x06,0x70,0x01,0x75,0x18,0xb2,0x04,0xe8,0x26,0x00,0x24, +/*00005700:*/0x03,0x34,0x03,0x8a,0xd0,0x0a,0xd2,0x75,0x18,0xb2,0x14,0xe8,0x17,0x00,0x8a,0xf4, +/*00005710:*/0xeb,0x0d,0x83,0xc3,0x08,0x80,0xff,0x09,0x72,0xd3,0x2e,0x8b,0x16,0x26,0x01,0x32, +/*00005720:*/0xd2,0x5b,0x66,0x58,0xc3,0xb4,0x80,0x8a,0xc7,0x66,0xc1,0xe0,0x10,0x8a,0xe3,0x8a, +/*00005730:*/0xc2,0x9c,0xfa,0xba,0xf8,0x0c,0x66,0xef,0xba,0xfc,0x0c,0x66,0xed,0x9d,0xc3,0x51, +/*00005740:*/0xeb,0x12,0x51,0x32,0xc9,0xeb,0x0d,0x51,0xb1,0x01,0xeb,0x08,0x51,0xb1,0x02,0xeb, +/*00005750:*/0x03,0x51,0xb1,0x03,0x52,0x66,0x50,0x66,0x57,0x50,0xe8,0x48,0xff,0xb2,0x00,0x66, +/*00005760:*/0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x58,0x52,0xb2,0x04,0x32, +/*00005770:*/0xed,0x03,0xd1,0xee,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x59, +/*00005780:*/0xc3,0x51,0xeb,0x08,0x51,0x32,0xc9,0xeb,0x03,0x51,0xb1,0x02,0x52,0x66,0x50,0x66, +/*00005790:*/0x57,0x50,0xe8,0x10,0xff,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b, +/*000057a0:*/0xc3,0x66,0xef,0x58,0x52,0xb2,0x04,0x32,0xed,0x03,0xd1,0xef,0x5a,0x66,0x8b,0xc7, +/*000057b0:*/0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x59,0xc3,0x52,0x66,0x50,0x66,0x57,0x66,0x50, +/*000057c0:*/0xe8,0xe2,0xfe,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66, +/*000057d0:*/0xef,0x66,0x58,0x52,0xb2,0x04,0x66,0xef,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f, +/*000057e0:*/0x66,0x58,0x5a,0xc3,0x51,0xeb,0x12,0x51,0x32,0xc9,0xeb,0x0d,0x51,0xb1,0x01,0xeb, +/*000057f0:*/0x08,0x51,0xb1,0x02,0xeb,0x03,0x51,0xb1,0x03,0x52,0x66,0x50,0x66,0x57,0xe8,0xa4, +/*00005800:*/0xfe,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52, +/*00005810:*/0xb2,0x04,0x32,0xed,0x03,0xd1,0xec,0x8a,0xc8,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66, +/*00005820:*/0x5f,0x66,0x58,0x5a,0x8a,0xc1,0x59,0xc3,0x51,0xeb,0x08,0x51,0x32,0xc9,0xeb,0x03, +/*00005830:*/0x51,0xb1,0x02,0x52,0x66,0x50,0x66,0x57,0xe8,0x6a,0xfe,0xb2,0x00,0x66,0xed,0x66, +/*00005840:*/0x8b,0xf8,0x66,0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52,0xb2,0x04,0x32,0xed,0x03,0xd1, +/*00005850:*/0xed,0x8b,0xc8,0x5a,0x66,0x8b,0xc7,0x66,0xef,0x66,0x5f,0x66,0x58,0x5a,0x8b,0xc1, +/*00005860:*/0x59,0xc3,0x52,0x66,0x57,0xe8,0x3d,0xfe,0xb2,0x00,0x66,0xed,0x66,0x8b,0xf8,0x66, +/*00005870:*/0x33,0xc0,0x8b,0xc3,0x66,0xef,0x52,0xb2,0x04,0x66,0xed,0x5a,0x66,0x97,0x66,0xef, +/*00005880:*/0x66,0x97,0x66,0x5f,0x5a,0xc3,0xb2,0x00,0x66,0xc1,0xe0,0x10,0x66,0xc1,0xe8,0x10, +/*00005890:*/0x66,0xef,0xc3,0x68,0x00,0x68,0x00,0x68,0x00,0x68,0x00,0x00,0x01,0x02,0x00,0x02, +/*000058a0:*/0x68,0x00,0x68,0x00,0x68,0x00,0x68,0x00,0x00,0x01,0x02,0x00,0x01,0x60,0x00,0x60, +/*000058b0:*/0x00,0x60,0x00,0x60,0x00,0x00,0x01,0x02,0x00,0x02,0x60,0x00,0x60,0x00,0x60,0x00, +/*000058c0:*/0x60,0x00,0x00,0x01,0x02,0x00,0x01,0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x00, +/*000058d0:*/0x01,0x02,0x00,0x02,0x64,0x00,0x64,0x00,0x64,0x00,0x64,0x00,0x00,0x01,0x02,0x00, +/*000058e0:*/0x01,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x6c,0x00,0x00,0x01,0x02,0x00,0x02,0x6c,0x00, +/*000058f0:*/0x6c,0x00,0x6c,0x00,0x6c,0x00,0x00,0x01,0x02,0x00,0x01,0xc7,0x58,0xad,0x58,0xc7, +/*00005900:*/0x58,0x66,0x50,0x52,0xe8,0x9e,0xfd,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x06, +/*00005910:*/0x3d,0x98,0x01,0x75,0x6b,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0a,0xec,0x2e,0x0a, +/*00005920:*/0x44,0x0c,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0b,0xec,0x2e,0x0a,0x44,0x0c,0xee,0xb2, +/*00005930:*/0x00,0x2e,0x8b,0x44,0x13,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x17,0xec,0x2e,0x0a, +/*00005940:*/0x44,0x19,0xee,0xb2,0x04,0x2e,0x02,0x54,0x18,0xec,0x2e,0x0a,0x44,0x19,0xee,0xb2, +/*00005950:*/0x00,0x2e,0x8b,0x04,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x08,0xec,0x2e,0x8a,0x64, +/*00005960:*/0x19,0xf6,0xd4,0x22,0xc4,0xee,0xb2,0x00,0x2e,0x8b,0x44,0x0d,0x66,0xef,0xb2,0x04, +/*00005970:*/0x2e,0x02,0x54,0x15,0xec,0x2e,0x8a,0x64,0x19,0xf6,0xd4,0x22,0xc4,0xee,0xeb,0x3e, +/*00005980:*/0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0a,0xec,0x2e,0x8a,0x64,0x0c,0xf6,0xd4,0x22, +/*00005990:*/0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0b,0xec,0x22,0xc4,0xee,0xb2,0x00,0x2e,0x8b, +/*000059a0:*/0x44,0x13,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x17,0xec,0x2e,0x8a,0x64,0x19,0xf6, +/*000059b0:*/0xd4,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x18,0xec,0x22,0xc4,0xee,0x5a,0x66, +/*000059c0:*/0x58,0xc3,0x66,0x50,0x52,0xe8,0xdd,0xfc,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44, +/*000059d0:*/0x06,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0b,0x2e,0x8a,0x64,0x0c,0xf6,0xd4,0xec, +/*000059e0:*/0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x0a,0xec,0x22,0xc4,0xee,0xb2,0x00,0x2e, +/*000059f0:*/0x8b,0x44,0x13,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x18,0x2e,0x8a,0x64,0x19,0xf6, +/*00005a00:*/0xd4,0xec,0x22,0xc4,0xee,0xb2,0x04,0x2e,0x02,0x54,0x17,0xec,0x22,0xc4,0xee,0x5a, +/*00005a10:*/0x66,0x58,0xc3,0x52,0x66,0x50,0xe8,0x8c,0xfc,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b, +/*00005a20:*/0x44,0x02,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x09,0xec,0x2e,0x84,0x44,0x0c,0x74, +/*00005a30:*/0x04,0xb0,0x01,0xeb,0x02,0xb0,0x00,0x8a,0xd0,0x66,0x58,0x8a,0xc2,0x5a,0x0a,0xc0, +/*00005a40:*/0xc3,0x52,0x66,0x50,0xe8,0x5e,0xfc,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x0f, +/*00005a50:*/0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x16,0xec,0x2e,0x84,0x44,0x19,0x74,0x04,0xb0, +/*00005a60:*/0x01,0xeb,0x02,0xb0,0x00,0x8a,0xd0,0x66,0x58,0x8a,0xc2,0x5a,0x0a,0xc0,0xc3,0x52, +/*00005a70:*/0x66,0x50,0xe8,0x30,0xfc,0x3c,0x01,0x74,0x1b,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b, +/*00005a80:*/0x44,0x04,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x0a,0xec,0x2e,0x0a,0x44,0x0c,0xee, +/*00005a90:*/0xb4,0x00,0xeb,0x1d,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x04,0x66,0xef,0xb2, +/*00005aa0:*/0x04,0x2e,0x02,0x54,0x0a,0x2e,0x8a,0x64,0x0c,0xf6,0xd4,0xec,0x22,0xc4,0xee,0xb4, +/*00005ab0:*/0x01,0x8a,0xd4,0x66,0x58,0x8a,0xe2,0x5a,0xc3,0x52,0x66,0x50,0xe8,0xe6,0xfb,0x3c, +/*00005ac0:*/0x01,0x74,0x1b,0xb2,0x00,0x66,0x33,0xc0,0x2e,0x8b,0x44,0x11,0x66,0xef,0xb2,0x04, +/*00005ad0:*/0x2e,0x02,0x54,0x17,0xec,0x2e,0x0a,0x44,0x19,0xee,0xb4,0x00,0xeb,0x1d,0xb2,0x00, +/*00005ae0:*/0x66,0x33,0xc0,0x2e,0x8b,0x44,0x11,0x66,0xef,0xb2,0x04,0x2e,0x02,0x54,0x17,0x2e, +/*00005af0:*/0x8a,0x64,0x19,0xf6,0xd4,0xec,0x22,0xc4,0xee,0xb4,0x01,0x8a,0xd4,0x66,0x58,0x8a, +/*00005b00:*/0xe2,0x5a,0xc3,0x51,0xb9,0xa7,0x00,0xe8,0x65,0xff,0xe8,0x06,0xff,0x38,0xc4,0x74, +/*00005b10:*/0x08,0xe8,0x87,0x14,0xe2,0xf4,0xf9,0xeb,0x01,0xf8,0x59,0xc3,0x51,0xb9,0xa7,0x00, +/*00005b20:*/0xe8,0x96,0xff,0xe8,0x1b,0xff,0x38,0xc4,0x74,0x08,0xe8,0x6e,0x14,0xe2,0xf4,0xf9, +/*00005b30:*/0xeb,0x01,0xf8,0x59,0xc3,0xe8,0xdb,0xfe,0x75,0x2a,0xe8,0x5e,0x14,0xb0,0x01,0xe8, +/*00005b40:*/0xc1,0xff,0x72,0x20,0xe8,0x54,0x14,0xe8,0xf7,0xfe,0x8a,0xe0,0xe8,0x4c,0x14,0xe8, +/*00005b50:*/0xef,0xfe,0x50,0xb0,0x00,0xe8,0xab,0xff,0x58,0x72,0x09,0x38,0xc4,0x75,0x05,0x0a, +/*00005b60:*/0xc0,0xf8,0xeb,0x06,0xb0,0x00,0xe8,0x06,0xff,0xf9,0xc3,0x50,0xe8,0xa4,0xfe,0x75, +/*00005b70:*/0x35,0xe8,0x27,0x14,0x58,0x50,0xa8,0x01,0x74,0x09,0xb0,0x01,0xe8,0x9d,0xff,0x72, +/*00005b80:*/0x25,0xeb,0x07,0xb0,0x00,0xe8,0x94,0xff,0x72,0x1c,0xb0,0x01,0xe8,0x74,0xff,0x72, +/*00005b90:*/0x15,0xe8,0x07,0x14,0xb0,0x00,0xe8,0x6a,0xff,0x72,0x0b,0xb0,0x01,0xe8,0x19,0xff, +/*00005ba0:*/0xe8,0xf8,0x13,0xf8,0xeb,0x01,0xf9,0x58,0xc3,0x51,0xe8,0x66,0xfe,0x75,0x1c,0xb0, +/*00005bb0:*/0x01,0xe8,0x05,0xff,0x32,0xc0,0xb9,0x08,0x00,0xd0,0xe0,0x50,0xe8,0x76,0xff,0x58, +/*00005bc0:*/0x72,0x09,0x74,0x02,0x0c,0x01,0xe2,0xf1,0xf8,0xeb,0x01,0xf9,0x59,0xc3,0x51,0x53, +/*00005bd0:*/0x50,0xe8,0x3f,0xfe,0x75,0x24,0xbb,0xe8,0x03,0x58,0x50,0xb9,0x08,0x00,0xd0,0xc0, +/*00005be0:*/0xe8,0x88,0xff,0x72,0x0c,0xe2,0xf7,0xe8,0x4b,0xff,0x72,0x0e,0x75,0x0c,0xf8,0xeb, +/*00005bf0:*/0x0a,0xf7,0xc1,0x07,0x00,0x75,0x03,0x4b,0x75,0xdf,0xf9,0x58,0x5b,0x59,0xc3,0x57, +/*00005c00:*/0xbf,0xf2,0x6f,0xe8,0x0b,0x00,0x5f,0xc3,0x57,0xbf,0xad,0x6f,0xe8,0x02,0x00,0x5f, +/*00005c10:*/0xc3,0x51,0x53,0xbb,0x96,0x00,0xb0,0x01,0xe8,0x9e,0xfe,0xb0,0x01,0xe8,0x4f,0xfe, +/*00005c20:*/0xb9,0x03,0x00,0xe8,0x75,0x13,0xe8,0xea,0xfd,0x74,0x47,0xe2,0xf6,0xb0,0x00,0xe8, +/*00005c30:*/0xd1,0xfe,0x72,0x4e,0xb0,0x01,0xe8,0x80,0xfe,0xff,0xd7,0xb0,0x01,0xe8,0xc3,0xfe, +/*00005c40:*/0x72,0x30,0xe8,0xfc,0xfd,0x74,0x3b,0xe8,0x51,0x13,0xe8,0xc6,0xfd,0x74,0x33,0xb0, +/*00005c50:*/0x00,0xe8,0xc8,0xfe,0x72,0x2c,0xe8,0x42,0x13,0xe8,0xb7,0xfd,0x74,0x24,0xb0,0x00, +/*00005c60:*/0xe8,0xa0,0xfe,0x72,0x1d,0xb0,0x01,0xe8,0xb2,0xfe,0x72,0x16,0xe8,0x2c,0x13,0xf8, +/*00005c70:*/0xeb,0x11,0xb0,0x01,0xe8,0x42,0xfe,0xb0,0x01,0xe8,0xf3,0xfd,0xe8,0x8a,0x12,0x4b, +/*00005c80:*/0x75,0x94,0xf9,0x5b,0x59,0xc3,0x53,0x51,0xe8,0x88,0xfd,0x75,0x21,0xe8,0x0b,0x13, +/*00005c90:*/0xb0,0x00,0xe8,0x87,0xfe,0x72,0x17,0xe8,0x01,0x13,0xb0,0x01,0xe8,0x64,0xfe,0x72, +/*00005ca0:*/0x0d,0xe8,0xf7,0x12,0xb0,0x01,0xe8,0x73,0xfe,0x72,0x03,0xf8,0xeb,0x0b,0xb0,0x01, +/*00005cb0:*/0xe8,0x06,0xfe,0xb0,0x01,0xe8,0xb7,0xfd,0xf9,0x59,0x5b,0xc3,0xe8,0x42,0xfc,0xf9, +/*00005cc0:*/0xe8,0x23,0x00,0xb0,0x00,0x73,0x02,0xb0,0x01,0xe8,0xf6,0xfc,0xc3,0x52,0x50,0xe8, +/*00005cd0:*/0xd3,0xf9,0xe8,0x2a,0xff,0x58,0x72,0x07,0xe8,0xf3,0xfe,0xb3,0x02,0x73,0x02,0x32, +/*00005ce0:*/0xdb,0xe8,0xa2,0xff,0x5a,0xc3,0x53,0x51,0x57,0xbb,0x01,0x00,0x5f,0x59,0x51,0x57, +/*00005cf0:*/0x73,0x05,0xe8,0x13,0xff,0xeb,0x03,0xe8,0x05,0xff,0x72,0x0d,0x26,0x8a,0x05,0x47, +/*00005d00:*/0xe8,0xcb,0xfe,0x72,0x04,0xe2,0xf5,0xeb,0x09,0xe8,0x7a,0xff,0x4b,0x75,0xdd,0xf9, +/*00005d10:*/0xeb,0x04,0xe8,0x71,0xff,0xf8,0x5f,0x59,0x5b,0xc3,0x50,0xb8,0xa0,0x00,0x26,0x89, +/*00005d20:*/0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0xbd,0xff,0x59,0x73,0x25,0xb8,0xa6,0x00,0x26, +/*00005d30:*/0x89,0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0xac,0xff,0x59,0x73,0x14,0xb8,0xa2,0x00, +/*00005d40:*/0x26,0x89,0x05,0x51,0xb9,0x02,0x00,0xf8,0xe8,0x9b,0xff,0x59,0x73,0x03,0xe9,0x82, +/*00005d50:*/0x00,0x26,0x8a,0x05,0xfe,0xc0,0x26,0x88,0x05,0x26,0x80,0x7d,0x02,0x53,0x75,0x05, +/*00005d60:*/0xe8,0xa5,0xfe,0xeb,0x03,0xe8,0x97,0xfe,0x72,0x64,0x26,0x8a,0x05,0xe8,0x5e,0xfe, +/*00005d70:*/0x72,0x5c,0x66,0xc1,0xc1,0x10,0x8b,0xd9,0x66,0xc1,0xc1,0x10,0x0b,0xdb,0x75,0x04, +/*00005d80:*/0x8a,0xd9,0xb7,0x01,0x49,0xfe,0xcb,0xfe,0xcf,0xfc,0xe8,0x1c,0xfe,0x72,0x3f,0x38, +/*00005d90:*/0xd9,0x77,0x05,0x38,0xf9,0x72,0x01,0xaa,0x49,0x50,0x32,0xc0,0xe8,0xcc,0xfd,0x58, +/*00005da0:*/0x72,0x2c,0xe8,0x04,0xfe,0x72,0x27,0x38,0xd9,0x77,0x05,0x38,0xf9,0x72,0x01,0xaa, +/*00005db0:*/0x32,0xc0,0xe8,0xb6,0xfd,0x72,0x17,0xe2,0xe9,0xe8,0xed,0xfd,0x72,0x10,0x38,0xd9, +/*00005dc0:*/0x77,0x05,0x38,0xf9,0x72,0x01,0xaa,0xb0,0x01,0xe8,0x9f,0xfd,0x72,0x00,0xe8,0xb5, +/*00005dd0:*/0xfe,0xeb,0x03,0xf9,0xeb,0x01,0xf8,0x58,0xc3,0x80,0xfb,0x04,0x75,0x07,0x33,0xc0, +/*00005de0:*/0x0c,0x02,0x0c,0x80,0xc3,0x0a,0xdb,0x75,0x50,0xb0,0xa0,0x80,0xff,0x06,0x74,0x05, +/*00005df0:*/0x80,0xff,0x02,0x75,0x02,0xb0,0xa6,0x33,0xdb,0x53,0xb9,0x01,0x00,0x51,0x50,0xe8, +/*00005e00:*/0xcb,0xfe,0x58,0x59,0x0a,0xdb,0x75,0x13,0xe2,0xf3,0x5b,0x3c,0xa2,0x74,0x08,0x3c, +/*00005e10:*/0xa0,0x74,0x24,0xb0,0xa2,0xeb,0xe2,0xb0,0xa0,0xeb,0xde,0x5b,0x3c,0xa6,0x75,0x07, +/*00005e20:*/0x83,0xcb,0x08,0xb0,0xa2,0xeb,0xd2,0x3c,0xa2,0x75,0x07,0x83,0xcb,0x04,0xb0,0xa0, +/*00005e30:*/0xeb,0xc7,0x83,0xcb,0x02,0xeb,0xa7,0xeb,0xa5,0x80,0xfb,0x01,0x75,0x27,0x8e,0xc2, +/*00005e40:*/0x26,0x8b,0x05,0x50,0x51,0x57,0x26,0xc6,0x45,0x02,0x4e,0xe8,0xcc,0xfe,0x5f,0x59, +/*00005e50:*/0x26,0x83,0x3d,0xff,0x58,0x75,0x0b,0x26,0x89,0x05,0x26,0xc6,0x45,0x02,0x53,0xe8, +/*00005e60:*/0xb8,0xfe,0x32,0xe4,0xc3,0x80,0xfb,0x02,0x75,0x02,0x8e,0xc2,0x80,0xfb,0x03,0x75, +/*00005e70:*/0x14,0x8e,0xc2,0xf9,0xe8,0x6f,0xfe,0x57,0x03,0xf9,0x26,0x8b,0x0d,0x5f,0x0a,0xc9, +/*00005e80:*/0x74,0x00,0x32,0xe4,0xc3,0xb4,0x01,0xc3,0x9c,0x80,0xff,0x02,0x75,0x18,0x0a,0xdb, +/*00005e90:*/0x74,0x0a,0xf6,0xc3,0x80,0x75,0x05,0xe8,0xf1,0x3a,0x74,0x0a,0x80,0xe3,0x7f,0x2e, +/*00005ea0:*/0x8b,0x36,0xfb,0x58,0xeb,0x34,0x80,0xff,0x04,0x75,0x18,0x0a,0xdb,0x74,0x0a,0xf6, +/*00005eb0:*/0xc3,0x80,0x75,0x05,0xe8,0x11,0x02,0x74,0x0a,0x80,0xe3,0x7f,0x2e,0x8b,0x36,0xff, +/*00005ec0:*/0x58,0xeb,0x17,0x80,0xff,0x00,0x75,0x09,0x0a,0xdb,0x74,0x09,0xe8,0xea,0x01,0x75, +/*00005ed0:*/0x04,0xb4,0x01,0xeb,0x0e,0x2e,0x8b,0x36,0xfd,0x58,0xe8,0x24,0xfa,0xe8,0xf9,0xfe, +/*00005ee0:*/0xe8,0xdf,0xfa,0x9d,0xc3,0xb0,0x02,0xe6,0x70,0x50,0x58,0xe4,0x71,0x8a,0xe0,0x32, +/*00005ef0:*/0xc0,0xe6,0x70,0x50,0x58,0xe4,0x71,0xc3,0x51,0x50,0xe8,0xe8,0xff,0x04,0x02,0x3c, +/*00005f00:*/0x5a,0x72,0x04,0x2c,0x5a,0xfe,0xc4,0x50,0x32,0xdb,0x53,0xb9,0x06,0x00,0x5b,0x53, +/*00005f10:*/0xb0,0x0b,0xe8,0x77,0xb3,0x0a,0xdb,0x75,0x11,0xe8,0xc9,0xff,0x8b,0xdc,0x36,0x8b, +/*00005f20:*/0x5f,0x02,0x3b,0xc3,0x77,0x02,0xe2,0xe6,0x32,0xdb,0x58,0x58,0x58,0x59,0xc3,0x50, +/*00005f30:*/0x52,0xe8,0x71,0xf7,0xb2,0x57,0xec,0x0c,0x40,0xee,0x5a,0x58,0xc3,0x50,0x52,0xe8, +/*00005f40:*/0x63,0xf7,0xb2,0x57,0xec,0x24,0x80,0xee,0x5a,0x58,0xc3,0x66,0x50,0x52,0xe8,0x54, +/*00005f50:*/0xf7,0xb2,0x00,0x66,0x33,0xc0,0xb8,0x84,0x02,0x66,0xef,0xb2,0x07,0xec,0xa8,0x01, +/*00005f60:*/0xf8,0x75,0x01,0xf9,0x5a,0x66,0x58,0xc3,0x50,0x52,0xe8,0x38,0xf7,0xb2,0x29,0xec, +/*00005f70:*/0x24,0x05,0xb4,0x01,0x3c,0x05,0x74,0x02,0x32,0xe4,0x0a,0xe4,0x5a,0x58,0xc3,0x50, +/*00005f80:*/0x52,0xe8,0x21,0xf7,0xb2,0x29,0xec,0x24,0x0a,0xb4,0x01,0x3c,0x0a,0x74,0x02,0x32, +/*00005f90:*/0xe4,0x0a,0xe4,0x5a,0x58,0xc3,0x50,0x53,0x51,0xbb,0x8c,0x02,0xe8,0x57,0xf8,0x24, +/*00005fa0:*/0x02,0x8a,0xc8,0xbb,0x90,0x02,0xe8,0x4d,0xf8,0x24,0x02,0x0a,0xc1,0xa8,0x02,0x59, +/*00005fb0:*/0x5b,0x58,0xc3,0x50,0x53,0xbb,0x7c,0x02,0xe8,0x2c,0xf8,0x24,0xcf,0xe8,0x82,0xf7, +/*00005fc0:*/0xe8,0xb2,0x2c,0xe8,0xaf,0x2c,0xbb,0x8c,0x02,0xe8,0x2a,0xf8,0x24,0xf5,0xe8,0x80, +/*00005fd0:*/0xf7,0xbb,0x90,0x02,0xe8,0x1f,0xf8,0x24,0xf5,0xe8,0x75,0xf7,0x5b,0x58,0xc3,0xc3, +/*00005fe0:*/0xc3,0xc3,0x50,0x53,0x51,0xe8,0x8d,0x2c,0xe8,0x8a,0x2c,0xb1,0x00,0xbb,0x8c,0x02, +/*00005ff0:*/0xe8,0x03,0xf8,0xa8,0x02,0x74,0x02,0xb1,0x10,0xbb,0x7c,0x02,0xe8,0xe8,0xf7,0x24, +/*00006000:*/0xcf,0x0a,0xc1,0xe8,0x3c,0xf7,0x59,0x5b,0x58,0xc3,0x50,0x52,0xe8,0x96,0xf6,0xb2, +/*00006010:*/0x7c,0xec,0x24,0xfe,0xee,0xe8,0x42,0x00,0x5a,0x58,0xc3,0x50,0x53,0x52,0xe8,0x84, +/*00006020:*/0xf6,0xb2,0x7c,0xec,0x24,0x8f,0x0c,0x02,0xee,0xbb,0xf8,0x03,0xe8,0xb8,0xf7,0x0c, +/*00006030:*/0x80,0xe8,0x0e,0xf7,0xe8,0xb5,0xf7,0x0c,0x02,0xe8,0x0b,0xf7,0xbb,0x14,0x0d,0xe8, +/*00006040:*/0xa5,0xf7,0x0c,0x20,0xe8,0xfb,0xf6,0xbb,0x8c,0x08,0xb8,0x03,0x02,0xe8,0x34,0xf7, +/*00006050:*/0xb8,0x28,0x00,0xe8,0x33,0xf7,0x5a,0x5b,0x58,0xc3,0x50,0x52,0xe8,0x46,0xf6,0xb2, +/*00006060:*/0x55,0xec,0x0c,0x80,0xee,0x5a,0x58,0xc3,0x50,0x52,0xe8,0x38,0xf6,0xb2,0x55,0xec, +/*00006070:*/0x24,0x7f,0xee,0xb2,0x7c,0xec,0x24,0xfe,0xee,0x5a,0x58,0xc3,0x50,0x53,0x52,0xe8, +/*00006080:*/0x23,0xf6,0xbb,0xf8,0x03,0xe8,0x5f,0xf7,0x24,0x8f,0x24,0x7f,0xe8,0xb3,0xf6,0x5a, +/*00006090:*/0x5b,0x58,0xc3,0x50,0x53,0xbb,0x80,0x02,0xe8,0x90,0xf7,0x33,0xc0,0x0c,0xe2,0xe8, +/*000060a0:*/0xe2,0xf6,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x80,0x02,0xe8,0x3a,0xf7,0x24,0xc0,0xe8, +/*000060b0:*/0x90,0xf6,0x5b,0x58,0xc3,0xe8,0xed,0xff,0xc3,0x50,0xe8,0x13,0x01,0xa8,0x03,0x75, +/*000060c0:*/0x05,0xe8,0x75,0x01,0xa8,0x40,0x58,0xc3,0x50,0xe8,0xfc,0x00,0xa8,0x03,0x75,0x05, +/*000060d0:*/0xe8,0x5e,0x01,0xa8,0x40,0x58,0xc3,0x52,0x53,0x8a,0xfc,0xe8,0xc7,0xf5,0xb2,0x25, +/*000060e0:*/0xec,0x24,0xaf,0x8a,0xe0,0xb2,0x27,0xec,0x24,0xaf,0x22,0xe0,0x32,0xc4,0xee,0x8a, +/*000060f0:*/0xe7,0x5b,0x5a,0xc3,0x52,0xe8,0xad,0xf5,0xb2,0x24,0xed,0x25,0xaf,0xaf,0x5a,0xc3, +/*00006100:*/0x50,0x52,0xe8,0xa0,0xf5,0xb2,0x24,0xed,0x0c,0x02,0x80,0xe4,0xfd,0xef,0x5a,0x58, +/*00006110:*/0xc3,0x50,0x52,0xe8,0x8f,0xf5,0xb2,0x24,0xed,0x0c,0x20,0x80,0xe4,0xdf,0xef,0x5a, +/*00006120:*/0x58,0xc3,0x50,0x52,0xe8,0x7e,0xf5,0xb2,0x24,0xed,0x25,0xfd,0xfd,0xef,0x5a,0x58, +/*00006130:*/0xc3,0x50,0x52,0xe8,0x6f,0xf5,0xb2,0x24,0xed,0x25,0xdf,0xdf,0xef,0x5a,0x58,0xc3, +/*00006140:*/0x60,0x1e,0x06,0xe8,0x50,0x01,0xa8,0x02,0x74,0x0b,0xe8,0xb3,0xff,0x50,0xe8,0xb9, +/*00006150:*/0xfe,0xe8,0x51,0xff,0x58,0xa8,0x20,0x74,0x0b,0xe8,0xb5,0xff,0x50,0xe8,0xbb,0xfe, +/*00006160:*/0xe8,0x52,0xff,0x58,0xa8,0x08,0x74,0x11,0xe8,0xd9,0x00,0x75,0x03,0xe8,0x3a,0x37, +/*00006170:*/0xe8,0xba,0x36,0xe8,0x73,0x37,0xe8,0x1a,0x38,0x8b,0x46,0x2c,0x89,0x46,0x22,0x89, +/*00006180:*/0x46,0x12,0x07,0x1f,0x61,0xc3,0x50,0x52,0xe8,0x69,0xff,0x8a,0xe0,0xe8,0x06,0x01, +/*00006190:*/0xf6,0xc4,0x20,0x74,0x0a,0xa8,0x20,0x75,0x06,0xe8,0x95,0xff,0xe8,0xdd,0xfe,0xf6, +/*000061a0:*/0xc4,0x02,0x74,0x0a,0xa8,0x02,0x75,0x06,0xe8,0x77,0xff,0xe8,0xba,0xfe,0xf6,0xc4, +/*000061b0:*/0x08,0x74,0x12,0xe8,0x43,0x37,0xa8,0x08,0x74,0x05,0xe8,0x08,0x37,0xeb,0x06,0xe8, +/*000061c0:*/0xe2,0x37,0xe8,0x00,0x37,0x5a,0x58,0xc3,0x52,0xe8,0xd9,0xf4,0xb2,0x21,0xeb,0x06, +/*000061d0:*/0x52,0xe8,0xd1,0xf4,0xb2,0x20,0xec,0x24,0x0f,0x5a,0xc3,0x52,0x53,0xe8,0xc5,0xf4, +/*000061e0:*/0xb2,0x21,0xeb,0x07,0x52,0x53,0xe8,0xbc,0xf4,0xb2,0x20,0x8b,0xd8,0xf6,0xd7,0xec, +/*000061f0:*/0x22,0xc7,0x0a,0xc3,0xee,0x5b,0x5a,0xc3,0x50,0x52,0xe8,0xa8,0xf4,0x32,0xc9,0xb2, +/*00006200:*/0x20,0xed,0xa8,0x03,0x74,0x03,0x80,0xc9,0x02,0xf6,0xc4,0x03,0x74,0x03,0x80,0xc9, +/*00006210:*/0x20,0xa8,0x30,0x74,0x03,0x80,0xc9,0x04,0xa8,0x04,0x74,0x03,0x80,0xc9,0x01,0xa8, +/*00006220:*/0x08,0x74,0x03,0x80,0xc9,0x08,0xf6,0xc4,0x08,0x74,0x03,0x80,0xc9,0x80,0x5a,0x58, +/*00006230:*/0xc3,0x52,0xe8,0x70,0xf4,0xb2,0x21,0xeb,0x06,0x52,0xe8,0x68,0xf4,0xb2,0x20,0xec, +/*00006240:*/0x24,0x40,0x5a,0xc3,0x50,0x52,0xe8,0x5c,0xf4,0xb2,0x2b,0xec,0x24,0x07,0x0a,0xc0, +/*00006250:*/0x5a,0x58,0xc3,0x50,0x52,0xe8,0x4d,0xf4,0xb2,0x27,0x8a,0xc4,0x24,0xab,0xee,0x5a, +/*00006260:*/0x58,0xc3,0x52,0xe8,0x3f,0xf4,0xb2,0x27,0xec,0x24,0xab,0x5a,0xc3,0x50,0x52,0xe8, +/*00006270:*/0x33,0xf4,0xb2,0x23,0xec,0x24,0x50,0x80,0xe4,0xaf,0x0a,0xc4,0xee,0x5a,0x58,0xc3, +/*00006280:*/0x52,0xe8,0x21,0xf4,0xb2,0x23,0xec,0x24,0xab,0x5a,0xc3,0x52,0xe8,0x16,0xf4,0xb2, +/*00006290:*/0x24,0xec,0x24,0xaf,0x5a,0xc3,0x52,0xe8,0x0b,0xf4,0xb2,0x23,0xec,0x24,0xaf,0x5a, +/*000062a0:*/0xc3,0x50,0x53,0x52,0xe8,0x56,0x16,0xba,0xc0,0x03,0xec,0x50,0x24,0x20,0x0c,0x10, +/*000062b0:*/0xee,0x42,0xec,0x8a,0xd8,0xe8,0x45,0x16,0xba,0xc0,0x03,0x58,0xee,0xe8,0x3d,0x16, +/*000062c0:*/0xf6,0xc3,0x01,0x5a,0x5b,0x58,0xc3,0x50,0x53,0x51,0x57,0x32,0xe4,0xe8,0x9d,0xff, +/*000062d0:*/0xe8,0x04,0xfe,0x0a,0xc0,0x74,0x2f,0x32,0xe4,0xa8,0x02,0x74,0x08,0xe8,0xd9,0xfd, +/*000062e0:*/0x74,0x03,0x80,0xcc,0x02,0xa8,0x20,0x74,0x08,0xe8,0xdc,0xfd,0x74,0x03,0x80,0xcc, +/*000062f0:*/0x20,0xa8,0x08,0x74,0x0a,0xe8,0x03,0x37,0x74,0x05,0x80,0xcc,0x08,0xeb,0x00,0x0a, +/*00006300:*/0xe4,0x74,0x03,0xe8,0x67,0xff,0x5f,0x59,0x5b,0x58,0xc3,0x50,0x52,0xe8,0xe4,0xfd, +/*00006310:*/0x8a,0xe0,0xe8,0x81,0xff,0xf6,0xc4,0x20,0x74,0x09,0xa8,0x20,0x74,0x05,0xe8,0x5b, +/*00006320:*/0xfd,0xeb,0x06,0xe8,0x0b,0xfe,0xe8,0x53,0xfd,0xf6,0xc4,0x02,0x74,0x09,0xa8,0x02, +/*00006330:*/0x74,0x05,0xe8,0x33,0xfd,0xeb,0x06,0xe8,0xe8,0xfd,0xe8,0x2b,0xfd,0xe8,0xb9,0x35, +/*00006340:*/0xe8,0x98,0x37,0xe8,0x2f,0x29,0xe8,0x2c,0x29,0xf6,0xc4,0x08,0x74,0x09,0xa8,0x08, +/*00006350:*/0x74,0x05,0xe8,0x5e,0xfc,0xeb,0x06,0xe8,0x4a,0x36,0xe8,0x68,0x35,0xe8,0x81,0xfc, +/*00006360:*/0xe8,0x42,0xf3,0xb2,0x28,0xec,0x24,0xfb,0xee,0x5a,0x58,0xc3,0x50,0x53,0x52,0xe8, +/*00006370:*/0x24,0xff,0x0a,0xc0,0x74,0x45,0xa8,0x20,0x74,0x06,0xe8,0x9e,0xfc,0xe8,0x91,0xfd, +/*00006380:*/0xa8,0x02,0x74,0x06,0xe8,0x83,0xfc,0xe8,0x76,0xfd,0xa8,0xdd,0x75,0x03,0xe8,0x2e, +/*00006390:*/0x00,0xa8,0x08,0x74,0x1b,0xa8,0x55,0x75,0x22,0xe8,0xa8,0xfe,0x75,0x03,0xe8,0x09, +/*000063a0:*/0x35,0xe8,0x89,0x34,0xe8,0x62,0x0b,0xe8,0x3f,0x35,0xe8,0xe6,0x35,0xe8,0x8d,0xfb, +/*000063b0:*/0xbb,0x54,0x00,0xe8,0x36,0xf4,0x24,0xf3,0xe8,0x8c,0xf3,0x5a,0x5b,0x58,0xc3,0x50, +/*000063c0:*/0x53,0x52,0x57,0xa0,0x49,0x04,0x3c,0x23,0x74,0x65,0x3c,0x32,0x74,0x61,0x3c,0x33, +/*000063d0:*/0x74,0x5d,0xbb,0xd6,0x09,0xb5,0x00,0xe8,0xa6,0x02,0xbb,0x10,0x0b,0xb5,0x01,0xe8, +/*000063e0:*/0x9e,0x02,0xba,0xcc,0x03,0xec,0x24,0x0c,0xc0,0xe8,0x02,0x8a,0xd8,0x53,0xbb,0x00, +/*000063f0:*/0x02,0xe8,0x3c,0xf4,0x5b,0x53,0xbf,0x37,0x64,0x2e,0x3b,0x05,0x74,0x0b,0x83,0xc7, +/*00006400:*/0x04,0x2e,0x83,0x3d,0x00,0x74,0x0d,0xeb,0xf0,0x83,0xc7,0x02,0x8a,0xeb,0x2e,0x8b, +/*00006410:*/0x1d,0xe8,0x6c,0x02,0x5b,0xe8,0x8d,0xf2,0xb2,0x09,0xec,0x24,0xfc,0x0a,0xc3,0xee, +/*00006420:*/0x04,0x04,0xfe,0xca,0xee,0x53,0xe8,0xb8,0x03,0x5b,0xf6,0xc3,0x02,0x74,0x03,0xe8, +/*00006430:*/0xa5,0x0a,0x5f,0x5a,0x5b,0x58,0xc3,0x63,0x00,0xa0,0x0f,0x7f,0x00,0x64,0x19,0x00, +/*00006440:*/0x00,0x66,0x50,0x53,0x51,0x57,0x8b,0xfb,0x50,0x66,0xc1,0xe0,0x10,0x58,0xe8,0x45, +/*00006450:*/0xfe,0x0a,0xc0,0x74,0x45,0x8a,0xe0,0x80,0xe4,0xa0,0xc0,0xec,0x04,0x0a,0xc4,0x24, +/*00006460:*/0x0f,0x3c,0x02,0x74,0x15,0x3c,0x08,0x74,0x06,0x3c,0x0a,0x74,0x02,0xeb,0x2b,0x8b, +/*00006470:*/0xdf,0x66,0xc1,0xe8,0x10,0xe8,0xa1,0x35,0xeb,0x20,0xc6,0x46,0x19,0x00,0x66,0xc7, +/*00006480:*/0x46,0x34,0x00,0x00,0x00,0x00,0x66,0xc7,0x46,0x38,0x00,0x00,0x00,0x00,0x66,0xc7, +/*00006490:*/0x46,0x3c,0x00,0x00,0x00,0x00,0xc6,0x46,0x2a,0x00,0x5f,0x59,0x5b,0x66,0x58,0xc3, +/*000064a0:*/0x50,0x51,0x52,0x8a,0x46,0x3b,0x8a,0xe0,0xc0,0xec,0x04,0x0a,0xc4,0x24,0x0b,0x3c, +/*000064b0:*/0x08,0x74,0x0e,0x3c,0x02,0x74,0x0a,0x3c,0x0a,0x74,0x06,0xeb,0x00,0xc6,0x46,0x02, +/*000064c0:*/0x00,0x5a,0x59,0x58,0xc3,0x00,0x9c,0xfa,0xbb,0x5e,0x02,0xe8,0x02,0x00,0x9d,0xc3, +/*000064d0:*/0x51,0xe8,0xd1,0xf1,0x66,0x33,0xc0,0x2e,0x8b,0x07,0x0b,0xc0,0x75,0x03,0xe9,0x8d, +/*000064e0:*/0x00,0xf6,0xc4,0x80,0x75,0x42,0x8a,0xec,0x80,0xe4,0x1f,0xf6,0xc5,0x20,0x75,0x2a, +/*000064f0:*/0xf6,0xc5,0x40,0xb2,0x00,0x66,0x0f,0xb7,0xc0,0x66,0xef,0x66,0x2e,0x8b,0x47,0x02, +/*00006500:*/0xb2,0x04,0x74,0x0f,0x66,0xed,0x66,0x2e,0x23,0x47,0x02,0x66,0x2e,0x0b,0x47,0x06, +/*00006510:*/0x83,0xc3,0x04,0x66,0xef,0x83,0xc3,0x06,0xeb,0xba,0x8a,0xd0,0xf6,0xc5,0x40,0x75, +/*00006520:*/0xe3,0x66,0x2e,0x8b,0x47,0x02,0xeb,0xeb,0xf6,0xc4,0x20,0x75,0x0e,0x53,0x2e,0x8b, +/*00006530:*/0x5f,0x02,0xe8,0xcb,0x09,0x5b,0x83,0xc3,0x04,0xeb,0x99,0x2e,0x8b,0x4f,0x02,0x2e, +/*00006540:*/0x80,0x7f,0x01,0x03,0x74,0x09,0x2e,0x80,0x7f,0x01,0x08,0x74,0x10,0xeb,0xe7,0x49, +/*00006550:*/0x74,0xe4,0xb0,0x94,0xe8,0x4a,0x02,0xa8,0x01,0x75,0xf4,0xeb,0xd9,0xbb,0x50,0x01, +/*00006560:*/0x49,0x74,0xd3,0xe8,0x81,0xf2,0x24,0x03,0x3c,0x03,0x75,0xf4,0xeb,0xc8,0xb2,0x08, +/*00006570:*/0x32,0xc0,0xee,0x59,0xc3,0x90,0x01,0x07,0x40,0x00,0x80,0x03,0x6e,0x00,0x06,0x50, +/*00006580:*/0x00,0x80,0x03,0x6e,0x00,0x06,0x64,0x00,0x80,0x06,0x96,0x00,0x06,0x64,0x00,0x80, +/*00006590:*/0x04,0x96,0x00,0x05,0x64,0x00,0x80,0x03,0x96,0x00,0x04,0x80,0x00,0x80,0x09,0xdc, +/*000065a0:*/0x00,0x06,0x80,0x00,0x80,0x07,0xdc,0x00,0x05,0x80,0x00,0x80,0x05,0xdc,0x00,0x04, +/*000065b0:*/0x80,0x00,0x80,0x03,0x52,0x00,0x82,0x80,0x00,0x80,0x03,0x52,0x00,0x02,0x90,0x00, +/*000065c0:*/0x80,0x0b,0xf5,0x00,0x06,0x90,0x00,0x80,0x09,0xe6,0x00,0x05,0x90,0x00,0x80,0x06, +/*000065d0:*/0xe6,0x00,0x04,0x90,0x00,0x80,0x03,0xe6,0x00,0x02,0xa0,0x00,0x80,0x0e,0xf5,0x00, +/*000065e0:*/0x06,0xa0,0x00,0x80,0x0b,0xf5,0x00,0x05,0xa0,0x00,0x80,0x07,0xf5,0x00,0x04,0xa0, +/*000065f0:*/0x00,0x80,0x04,0xf5,0x00,0x02,0xc8,0x00,0x80,0x15,0x0e,0x01,0x06,0xc8,0x00,0x80, +/*00006600:*/0x10,0x0e,0x01,0x05,0xc8,0x00,0x80,0x0b,0x0e,0x01,0x04,0xc8,0x00,0x80,0x06,0x0e, +/*00006610:*/0x01,0x02,0xe8,0x00,0x80,0x1e,0x5e,0x01,0x06,0xe8,0x00,0x80,0x16,0x5e,0x01,0x05, +/*00006620:*/0xe8,0x00,0x80,0x0f,0x5e,0x01,0x04,0xe8,0x00,0x80,0x08,0x5e,0x01,0x02,0xf0,0x00, +/*00006630:*/0x80,0x1e,0x5e,0x01,0x06,0xf0,0x00,0x80,0x17,0x5e,0x01,0x05,0xf0,0x00,0x80,0x0f, +/*00006640:*/0x5e,0x01,0x04,0xf0,0x00,0x80,0x08,0x5e,0x01,0x02,0x00,0x01,0x80,0x22,0x5e,0x01, +/*00006650:*/0x06,0x00,0x01,0x80,0x1a,0x5e,0x01,0x05,0x00,0x01,0x80,0x11,0x5e,0x01,0x04,0x00, +/*00006660:*/0x01,0x80,0x09,0x5e,0x01,0x02,0x00,0x00,0x02,0x06,0x40,0xc0,0x02,0x4b,0x06,0x5a, +/*00006670:*/0x50,0xc0,0x02,0x4b,0x06,0x5a,0x00,0x00,0x01,0x02,0x04,0x08,0x03,0x10,0x06,0x0c, +/*00006680:*/0x66,0x50,0x53,0x51,0xb0,0x08,0x32,0xe4,0xb5,0xfc,0xe8,0x30,0x01,0xb0,0x02,0xb4, +/*00006690:*/0x01,0xb5,0xff,0xe8,0x27,0x01,0x59,0x5b,0x53,0x51,0x8b,0xc3,0x0b,0xc0,0x74,0x3a, +/*000066a0:*/0xbb,0x03,0x04,0x33,0xc9,0x2e,0x8a,0x4f,0x05,0x83,0xc3,0x10,0x2e,0x3b,0x07,0x7e, +/*000066b0:*/0x05,0x83,0xc3,0x0a,0xe2,0xf6,0x83,0xeb,0x08,0x8b,0xcb,0x66,0x2e,0x8b,0x07,0xbb, +/*000066c0:*/0xa8,0x02,0xe8,0xf4,0xf0,0xe8,0xad,0x25,0x8b,0xd9,0x83,0xc3,0x04,0x66,0x2e,0x8b, +/*000066d0:*/0x07,0xbb,0xa8,0x02,0xe8,0xe2,0xf0,0xe8,0x9b,0x25,0x59,0x5b,0x56,0x53,0xbe,0x26, +/*000066e0:*/0x06,0xe8,0x97,0x03,0x58,0xe8,0x57,0x00,0x80,0xc5,0x04,0x80,0xcf,0x80,0x51,0x53, +/*000066f0:*/0x66,0x58,0xe8,0x6b,0x00,0x80,0xe7,0x7f,0xb0,0x03,0xe8,0x80,0x00,0x66,0x53,0x66, +/*00006700:*/0xc1,0xeb,0x10,0x83,0xe3,0xff,0x80,0xcf,0x80,0x8b,0xc3,0xb5,0x03,0xe8,0x50,0x00, +/*00006710:*/0x80,0xe7,0x7f,0x66,0x5b,0xb0,0x02,0x32,0xe4,0xb5,0xfe,0xe8,0x9f,0x00,0xe8,0xbf, +/*00006720:*/0x08,0xb0,0x08,0xb4,0x03,0xb5,0xfc,0xe8,0x93,0x00,0x66,0x8b,0xc3,0x66,0xc1,0xe8, +/*00006730:*/0x0a,0x83,0xe0,0xc0,0x83,0xe1,0x07,0x0b,0xc8,0x5e,0x66,0x58,0x32,0xe4,0xc3,0x51, +/*00006740:*/0x56,0x32,0xed,0xbe,0x78,0x66,0x03,0xf1,0x2e,0x8a,0x0c,0xf7,0xe1,0x5e,0x3d,0xa8, +/*00006750:*/0x61,0xb4,0x20,0x7e,0x02,0xb4,0x38,0xb0,0x42,0xb5,0xc7,0xe8,0x5f,0x00,0x59,0xc3, +/*00006760:*/0x52,0x66,0x50,0xe8,0x3f,0xef,0xb2,0x08,0xec,0x24,0xc0,0x0a,0xc5,0x0c,0x80,0xee, +/*00006770:*/0x66,0x58,0xb2,0x0c,0x66,0xef,0xb2,0x08,0x32,0xc0,0xee,0x5a,0xc3,0x52,0xe8,0x24, +/*00006780:*/0xef,0x9c,0xfa,0xb2,0x08,0xee,0xb2,0x0c,0x66,0xed,0x9d,0x5a,0xc3,0x52,0xe8,0x14, +/*00006790:*/0xef,0x9c,0xfa,0xb2,0x08,0xee,0xc0,0xe8,0x06,0xb2,0x0c,0x02,0xd0,0xed,0x9d,0x5a, +/*000067a0:*/0xc3,0x52,0xe8,0x00,0xef,0x9c,0xfa,0xb2,0x08,0xee,0xc0,0xe8,0x06,0xb2,0x0c,0x02, +/*000067b0:*/0xd0,0xec,0x9d,0x5a,0xc3,0x51,0x32,0xed,0xe8,0x02,0x00,0x59,0xc3,0x52,0xe8,0xe4, +/*000067c0:*/0xee,0x9c,0xfa,0xb2,0x08,0x50,0x24,0x3f,0x0c,0x80,0xee,0x58,0xc0,0xe8,0x06,0xb2, +/*000067d0:*/0x0c,0x02,0xd0,0xec,0x22,0xc5,0x0a,0xc4,0xee,0xb2,0x08,0x32,0xc0,0xee,0x9d,0x5a, +/*000067e0:*/0xc3,0x66,0x51,0x66,0x52,0xe8,0xbd,0xee,0x9c,0xfa,0xb2,0x09,0xec,0x24,0x03,0x04, +/*000067f0:*/0x04,0xfe,0xca,0xee,0xb2,0x0e,0xec,0x50,0xb2,0x0c,0xed,0x25,0xff,0x07,0x50,0xb0, +/*00006800:*/0x03,0xe8,0x89,0xff,0x25,0xff,0x03,0x8b,0xc8,0x58,0x66,0x0f,0xb7,0xc0,0x66,0x33, +/*00006810:*/0xd2,0x51,0x66,0xb9,0x8c,0x0a,0x00,0x00,0x66,0xf7,0xe1,0x59,0x66,0x0f,0xb7,0xc9, +/*00006820:*/0x66,0xf7,0xf1,0x5a,0x66,0x50,0x83,0xe2,0x07,0x56,0xbe,0x78,0x66,0x03,0xf2,0x2e, +/*00006830:*/0x8a,0x04,0x5e,0x32,0xe4,0x66,0x0f,0xb7,0xc8,0x66,0x58,0x66,0x33,0xd2,0x66,0xf7, +/*00006840:*/0xf1,0x9d,0x66,0x5a,0x66,0x59,0xc3,0x66,0x51,0x66,0x52,0xb0,0x12,0xe8,0x51,0xff, +/*00006850:*/0x24,0x07,0x0a,0xc0,0x75,0x11,0xb0,0xd4,0xe8,0x46,0xff,0xa8,0x01,0x75,0x35,0x66, +/*00006860:*/0xb8,0xc8,0x19,0x00,0x00,0xeb,0x24,0xfe,0xc8,0x50,0xb0,0x4a,0xe8,0x32,0xff,0x32, +/*00006870:*/0xe4,0x66,0x0f,0xb7,0xc0,0x66,0x33,0xd2,0x66,0xb9,0x18,0x15,0x00,0x00,0x66,0xf7, +/*00006880:*/0xe1,0xb9,0x0c,0x00,0x66,0xf7,0xf1,0x59,0x66,0xd3,0xe8,0x66,0x5a,0x66,0x59,0xc3, +/*00006890:*/0x66,0x51,0x66,0x52,0xb0,0x0d,0xe8,0x08,0xff,0x24,0x07,0x0a,0xc0,0x75,0x08,0x66, +/*000068a0:*/0xb8,0xc8,0x19,0x00,0x00,0xeb,0x28,0x3c,0x07,0x74,0xa0,0xfe,0xc8,0x50,0xb0,0x8a, +/*000068b0:*/0xe8,0xee,0xfe,0x32,0xe4,0x66,0x0f,0xb7,0xc0,0x66,0x33,0xd2,0x66,0xb9,0x18,0x15, +/*000068c0:*/0x00,0x00,0x66,0xf7,0xe1,0xb9,0x0c,0x00,0x66,0xf7,0xf1,0x59,0x66,0xd3,0xe8,0x66, +/*000068d0:*/0x5a,0x66,0x59,0xc3,0x66,0x50,0x57,0x56,0x52,0x51,0x8b,0xc7,0x2b,0xc3,0x8b,0xf7, +/*000068e0:*/0x26,0x89,0x47,0x0a,0xe8,0xbe,0xed,0xb2,0x08,0xec,0x33,0xc0,0xab,0xb9,0x36,0x00, +/*000068f0:*/0x32,0xe4,0x50,0xb2,0x08,0xec,0x24,0x40,0x0a,0xc4,0xee,0xb2,0x0c,0x66,0xed,0x66, +/*00006900:*/0xab,0x58,0xfe,0xc4,0xe2,0xec,0xb2,0x08,0x26,0x8a,0x04,0xee,0x32,0xc0,0x26,0x88, +/*00006910:*/0x04,0x59,0x5a,0x5e,0x5f,0x66,0x58,0x81,0xc7,0xda,0x00,0xc3,0x66,0x50,0x57,0x56, +/*00006920:*/0x51,0x52,0x8b,0x7f,0x0a,0x03,0xfb,0x8b,0xf7,0x46,0x46,0xb9,0x36,0x00,0x32,0xe4, +/*00006930:*/0xe8,0x72,0xed,0xb2,0x08,0x50,0xec,0x24,0xc0,0x0c,0x80,0x0a,0xc4,0xee,0xb2,0x0c, +/*00006940:*/0x66,0xad,0x66,0xef,0x58,0xfe,0xc4,0xe2,0xea,0xb2,0x08,0x8a,0x05,0xee,0x5a,0x59, +/*00006950:*/0x5e,0x5f,0x66,0x58,0xc3,0x66,0x50,0xb2,0x08,0x8a,0xc3,0x24,0x3f,0x0c,0x80,0xee, +/*00006960:*/0x66,0x58,0xb2,0x0c,0x66,0xef,0xb2,0x08,0x32,0xc0,0xee,0xc3,0x53,0x51,0x52,0xe8, +/*00006970:*/0x33,0xed,0xb9,0xe8,0x03,0x2e,0xac,0x8a,0xd8,0x0a,0xdb,0x75,0x03,0xe9,0x9f,0x00, +/*00006980:*/0x49,0x75,0x03,0xe9,0x99,0x00,0xf6,0xc3,0x80,0x74,0x6e,0x80,0xe3,0x7f,0x80,0xfb, +/*00006990:*/0x01,0x74,0x16,0x80,0xfb,0x02,0x74,0x16,0x80,0xfb,0x03,0x74,0x16,0x80,0xfb,0x04, +/*000069a0:*/0x74,0x1c,0x80,0xfb,0x05,0x74,0x22,0xeb,0xcc,0xe8,0x13,0x06,0xeb,0xc7,0xe8,0x2f, +/*000069b0:*/0x06,0xeb,0xc2,0xb0,0x94,0xe8,0xe9,0xfd,0xa8,0x01,0x75,0xf7,0xeb,0xb7,0xb0,0x94, +/*000069c0:*/0xe8,0xde,0xfd,0xa8,0x08,0x74,0xf7,0xeb,0xac,0xb0,0xd4,0xe8,0xd3,0xfd,0xa8,0x01, +/*000069d0:*/0x74,0xa3,0xb0,0x12,0xb4,0x11,0xe8,0xdc,0xfd,0xb0,0x52,0xb4,0x11,0xe8,0xd5,0xfd, +/*000069e0:*/0xe8,0xfd,0x05,0xe8,0xfa,0x05,0xb8,0xd4,0x00,0x51,0xb5,0xfe,0xe8,0xce,0xfd,0x59, +/*000069f0:*/0xe8,0xed,0x05,0xe8,0xea,0x05,0xe9,0x7c,0xff,0xf6,0xc3,0x40,0x74,0x18,0x2e,0xac, +/*00006a00:*/0x8a,0xf8,0xc0,0xe7,0x06,0x2e,0xad,0x51,0x8a,0xe8,0x8a,0xc3,0x24,0x3f,0x0a,0xc7, +/*00006a10:*/0xe8,0xaa,0xfd,0x59,0xeb,0x06,0x66,0x2e,0xad,0xe8,0x39,0xff,0xe9,0x56,0xff,0x5a, +/*00006a20:*/0x59,0x5b,0xc3,0x50,0x53,0x51,0x56,0xbe,0xe4,0x03,0xb9,0x01,0x00,0xeb,0x0a,0x50, +/*00006a30:*/0x53,0x51,0x56,0xbe,0xd4,0x03,0xb9,0x01,0x00,0x51,0x2e,0xac,0x3c,0xff,0x74,0x33, +/*00006a40:*/0x3c,0x0f,0x75,0x14,0xbb,0x50,0x01,0xb9,0x00,0x80,0x49,0x74,0x09,0xe8,0x97,0xed, +/*00006a50:*/0x24,0x03,0x3c,0x03,0x75,0xf4,0xeb,0xe2,0x8a,0xc8,0x2e,0xad,0xbb,0x58,0x01,0xe8, +/*00006a60:*/0xe0,0xec,0x8a,0xc4,0xe8,0xe0,0xec,0xe8,0x8c,0xed,0x24,0x6f,0x0a,0xc1,0xe8,0xe0, +/*00006a70:*/0xec,0xeb,0xc7,0x59,0xe2,0xc3,0x5e,0x59,0x5b,0x58,0xc3,0x66,0x50,0x66,0x52,0x66, +/*00006a80:*/0x0f,0xb7,0xd3,0x66,0x8b,0xc2,0xb1,0x00,0x66,0x2e,0x3b,0x54,0x04,0x76,0x11,0x66, +/*00006a90:*/0x2e,0x3b,0x54,0x08,0x76,0x05,0x66,0x2e,0x8b,0x54,0x08,0x76,0x03,0xe9,0x82,0x00, +/*00006aa0:*/0x66,0xc1,0xe0,0x02,0x66,0xc1,0xe2,0x04,0xb1,0x05,0x66,0x2e,0x3b,0x54,0x04,0x77, +/*00006ab0:*/0x07,0x66,0x2e,0x8b,0x54,0x04,0xeb,0x6a,0xe8,0xb4,0x01,0x76,0x65,0x66,0x2b,0xd0, +/*00006ac0:*/0xb1,0x07,0x66,0x2e,0x3b,0x54,0x04,0x77,0x07,0x66,0x2e,0x8b,0x54,0x04,0xeb,0x52, +/*00006ad0:*/0xe8,0x9c,0x01,0x76,0x4d,0x66,0x2b,0xd0,0x66,0xc1,0xe8,0x02,0xb1,0x03,0xe8,0x8e, +/*00006ae0:*/0x01,0x76,0x3f,0x66,0x2b,0xd0,0x66,0x2b,0xd0,0xb1,0x06,0xe8,0x81,0x01,0x76,0x32, +/*00006af0:*/0x66,0x2b,0xd0,0x66,0x2b,0xd0,0xb1,0x02,0xe8,0x74,0x01,0x76,0x25,0x66,0x2b,0xd0, +/*00006b00:*/0xb1,0x04,0xe8,0x6a,0x01,0x76,0x1b,0x66,0x2b,0xd0,0xb1,0x01,0xe8,0x60,0x01,0x76, +/*00006b10:*/0x11,0x66,0xd1,0xea,0xb1,0x00,0x66,0x2e,0x3b,0x54,0x08,0x76,0x05,0x66,0x2e,0x8b, +/*00006b20:*/0x54,0x08,0x81,0xfb,0xd6,0x09,0x72,0x09,0x81,0xfb,0x10,0x0b,0x77,0x03,0xe9,0x04, +/*00006b30:*/0x01,0x55,0x83,0xec,0x0e,0x8b,0xec,0x89,0x4e,0xfe,0x66,0x89,0x56,0xfa,0xb9,0x02, +/*00006b40:*/0x00,0x66,0x8b,0x5e,0xfa,0x66,0x0f,0xb7,0xc1,0x66,0xf7,0xe3,0x66,0x89,0x46,0xf6, +/*00006b50:*/0x66,0x2e,0x0f,0xb7,0x1c,0x66,0xf7,0xf3,0x66,0xd1,0xeb,0x66,0x3b,0xd3,0x72,0x02, +/*00006b60:*/0x66,0x40,0x66,0x83,0xf8,0x04,0x72,0x78,0x66,0x89,0x46,0xf2,0x66,0xb8,0xe0,0x2e, +/*00006b70:*/0x00,0x00,0x66,0x0f,0xb7,0xd9,0x66,0xf7,0xe3,0x66,0x2e,0x0f,0xb7,0x1c,0x66,0xf7, +/*00006b80:*/0xf3,0x66,0xd1,0xeb,0x66,0x3b,0xd3,0x72,0x02,0x66,0x40,0x66,0x8b,0x5e,0xf2,0x66, +/*00006b90:*/0x3b,0xd8,0x72,0x4c,0x66,0xb8,0xb8,0x88,0x00,0x00,0x66,0x0f,0xb7,0xd9,0x66,0xf7, +/*00006ba0:*/0xe3,0x66,0x2e,0x0f,0xb7,0x1c,0x66,0xf7,0xf3,0x66,0x8b,0x5e,0xf2,0x66,0x3b,0xd8, +/*00006bb0:*/0x7f,0x2e,0x66,0x8b,0xc3,0x66,0x2e,0x0f,0xb7,0x1c,0x66,0xf7,0xe3,0x66,0x8b,0x5e, +/*00006bc0:*/0xf6,0x66,0x3b,0xc3,0x77,0x02,0x66,0x93,0x66,0x2b,0xc3,0x66,0xbb,0x10,0x27,0x00, +/*00006bd0:*/0x00,0x66,0xf7,0xe3,0x66,0x8b,0x5e,0xf6,0x66,0xf7,0xf3,0x83,0xf8,0x19,0x76,0x0d, +/*00006be0:*/0x41,0x83,0xf9,0x43,0x77,0x03,0xe9,0x58,0xff,0x2e,0x8b,0x4c,0x02,0x66,0x8b,0x5e, +/*00006bf0:*/0xfa,0x66,0x0f,0xb7,0xc1,0x66,0xf7,0xe3,0x66,0x2e,0x0f,0xb7,0x1c,0x66,0xf7,0xf3, +/*00006c00:*/0x66,0xd1,0xeb,0x66,0x3b,0xd3,0x72,0x02,0x66,0x40,0x66,0x0f,0xb7,0xd9,0x66,0xc1, +/*00006c10:*/0xe3,0x10,0x8b,0xd8,0x8b,0x4e,0xfe,0x83,0xc4,0x0e,0x5d,0x81,0xfe,0x26,0x06,0x74, +/*00006c20:*/0x08,0x3d,0x00,0x01,0x72,0x0b,0xb8,0xff,0x00,0x3d,0x00,0x08,0x72,0x03,0xb8,0xff, +/*00006c30:*/0x07,0x8b,0xd8,0xeb,0x35,0x8b,0xda,0x2e,0x8b,0x44,0x02,0x50,0xf7,0xe3,0x2e,0x8b, +/*00006c40:*/0x1c,0xd1,0xeb,0x03,0xc3,0x83,0xd2,0x00,0x2e,0x8b,0x1c,0xf7,0xf3,0x81,0xfe,0x26, +/*00006c50:*/0x06,0x74,0x08,0x3d,0x00,0x01,0x72,0x0b,0xb8,0xff,0x00,0x3d,0x00,0x08,0x72,0x03, +/*00006c60:*/0xb8,0xff,0x07,0x5b,0x66,0xc1,0xe3,0x10,0x8b,0xd8,0x66,0x5a,0x66,0x58,0xc3,0x66, +/*00006c70:*/0x2e,0x3b,0x54,0x04,0x72,0x06,0x66,0x2e,0x3b,0x54,0x08,0xc3,0x80,0xf9,0x00,0xc3, +/*00006c80:*/0xe8,0x20,0xb5,0x74,0x01,0xc3,0x66,0x50,0x53,0xbb,0x24,0x02,0x66,0x33,0xc0,0xe8, +/*00006c90:*/0x27,0xeb,0x5b,0x66,0x58,0xe8,0x73,0xf6,0x32,0xed,0xe8,0xbe,0xb4,0x50,0x52,0xe8, +/*00006ca0:*/0x03,0xea,0xb2,0x56,0xec,0x24,0xf7,0xee,0xb2,0x54,0xec,0x24,0x97,0xee,0xb2,0x54, +/*00006cb0:*/0xec,0xb2,0x50,0xec,0x24,0xfc,0xee,0xb2,0x53,0xec,0x24,0xfd,0xee,0x5a,0x58,0xe8, +/*00006cc0:*/0x92,0x00,0xc3,0xe8,0xdd,0xb4,0x74,0x01,0xc3,0xe8,0xd9,0xe9,0xb2,0x50,0xed,0x25, +/*00006cd0:*/0xfd,0xf0,0x26,0x8a,0x4f,0x07,0xf6,0xc1,0x40,0x74,0x02,0x0c,0x02,0x80,0xcc,0x02, +/*00006ce0:*/0xef,0xb2,0x53,0xec,0x0c,0x02,0x24,0xfe,0xee,0x26,0x8a,0x57,0x37,0xf6,0xc2,0x10, +/*00006cf0:*/0x75,0x10,0xf6,0xc2,0x20,0x74,0x40,0xba,0xc4,0x03,0xb0,0x04,0xee,0x42,0xec,0x0c, +/*00006d00:*/0x08,0xee,0xba,0xce,0x03,0xb0,0x05,0xee,0x42,0xec,0x0c,0x40,0xee,0xba,0xd4,0x03, +/*00006d10:*/0xb0,0x13,0xee,0x42,0xec,0xd0,0xe0,0xee,0x50,0x52,0xe8,0x88,0xe9,0xb2,0x54,0xec, +/*00006d20:*/0x0c,0x48,0xee,0xb2,0x54,0xec,0x5a,0x58,0x50,0x52,0xe8,0x78,0xe9,0xb2,0x56,0xec, +/*00006d30:*/0x0c,0x08,0xee,0x5a,0x58,0xeb,0x19,0xf6,0xc2,0x40,0x74,0x14,0x50,0x52,0xe8,0x64, +/*00006d40:*/0xe9,0xb2,0x54,0xec,0x0c,0x40,0xee,0x5a,0x58,0x32,0xed,0xe8,0x18,0xb4,0xeb,0xd8, +/*00006d50:*/0xe8,0x19,0xf6,0xc3,0x66,0x50,0x52,0x57,0xe8,0x4a,0xe9,0xbf,0x7a,0x6d,0x2e,0x8b, +/*00006d60:*/0x05,0x83,0xf8,0xff,0x74,0x0f,0xe8,0x1d,0xeb,0xb2,0x04,0x66,0x33,0xc0,0x66,0xef, +/*00006d70:*/0x83,0xc7,0x02,0xeb,0xe9,0x5f,0x5a,0x66,0x58,0xc3,0x08,0x02,0x0c,0x02,0x00,0x02, +/*00006d80:*/0x04,0x02,0xff,0xff,0x40,0x60,0x30,0x18,0x18,0x10,0x0c,0x18,0x18,0x66,0x51,0x66, +/*00006d90:*/0x52,0x83,0xec,0x12,0x8b,0xfc,0xe8,0xae,0xfa,0x36,0x89,0x05,0x66,0x0f,0xb7,0xd8, +/*00006da0:*/0x66,0xb8,0xc0,0xa3,0x9b,0x00,0x66,0x33,0xd2,0x66,0xf7,0xf3,0x66,0x8b,0xc8,0xe8, +/*00006db0:*/0xde,0xfa,0x36,0x89,0x45,0x02,0x2d,0x0b,0x1a,0x36,0x89,0x45,0x04,0x66,0x0f,0xb7, +/*00006dc0:*/0xd8,0x66,0x33,0xd2,0x66,0xb8,0x80,0x1a,0x06,0x00,0x66,0xf7,0xf3,0x66,0x03,0xc1, +/*00006dd0:*/0x66,0x36,0x89,0x45,0x0a,0x66,0x33,0xd2,0x66,0xb8,0xa0,0x8f,0x3e,0x00,0x66,0xf7, +/*00006de0:*/0xf3,0x66,0x36,0x89,0x45,0x0e,0x66,0x33,0xd2,0x66,0xb8,0x00,0x6a,0x18,0x00,0x66, +/*00006df0:*/0xf7,0xf3,0x66,0x36,0x01,0x45,0x0e,0x66,0xb8,0x20,0x75,0x38,0x00,0x66,0x3d,0xc0, +/*00006e00:*/0x27,0x09,0x00,0x73,0x06,0x66,0xb8,0xc0,0x27,0x09,0x00,0x66,0x05,0xe0,0x93,0x04, +/*00006e10:*/0x00,0x66,0x33,0xd2,0x36,0x8b,0x1d,0x66,0x0f,0xb7,0xdb,0x66,0xf7,0xf3,0x66,0x36, +/*00006e20:*/0x01,0x45,0x0a,0x66,0xb8,0xa0,0xbb,0x0d,0x00,0x66,0x3d,0xc0,0x27,0x09,0x00,0x73, +/*00006e30:*/0x06,0x66,0xb8,0xc0,0x27,0x09,0x00,0x66,0x05,0xe0,0x93,0x04,0x00,0x66,0x33,0xd2, +/*00006e40:*/0x36,0x8b,0x1d,0x66,0x0f,0xb7,0xdb,0x66,0xf7,0xf3,0x66,0x36,0x01,0x45,0x0a,0x66, +/*00006e50:*/0x33,0xd2,0x66,0xb8,0x00,0x35,0x0c,0x00,0x36,0x8b,0x5d,0x02,0x66,0x0f,0xb7,0xdb, +/*00006e60:*/0x66,0xf7,0xf3,0x66,0x36,0x01,0x45,0x0e,0x66,0x36,0x03,0x45,0x0a,0x66,0x36,0x3b, +/*00006e70:*/0x45,0x0e,0x77,0x05,0x66,0x36,0x8b,0x45,0x0e,0x66,0x8b,0xd8,0xbe,0x84,0x6d,0xe8, +/*00006e80:*/0x23,0xe8,0xb2,0x51,0xe8,0x02,0xe8,0x83,0xe0,0x0f,0x03,0xf0,0x2e,0x8a,0x0c,0x32, +/*00006e90:*/0xed,0xe8,0x4d,0xf9,0x33,0xd2,0xf7,0xf1,0x66,0x0f,0xb7,0xc0,0x66,0xf7,0xe3,0x66, +/*00006ea0:*/0x33,0xd2,0x66,0xbb,0x35,0x82,0x00,0x00,0x66,0xf7,0xf3,0x66,0x0b,0xd2,0x74,0x01, +/*00006eb0:*/0x40,0x66,0x83,0xe0,0x7f,0x66,0xc1,0xe0,0x10,0x66,0x83,0xc8,0x5c,0x66,0x0d,0x00, +/*00006ec0:*/0x5c,0x00,0x00,0x66,0x0d,0x00,0x00,0x00,0x20,0xbb,0xf0,0x02,0xe8,0xea,0xe8,0x83, +/*00006ed0:*/0xc4,0x12,0x66,0x5a,0x66,0x59,0xc3,0x53,0xbb,0xf4,0x02,0x66,0xb8,0x34,0x34,0x00, +/*00006ee0:*/0x00,0xe8,0xd5,0xe8,0x5b,0xc3,0x66,0xb8,0x00,0x00,0x00,0x00,0xc3,0xb8,0x01,0x00, +/*00006ef0:*/0x81,0xfb,0x5c,0x44,0x77,0x02,0x33,0xc0,0x8a,0xe0,0xb0,0x48,0xe8,0xb6,0xf8,0xc3, +/*00006f00:*/0x57,0xbf,0x1b,0x00,0xe8,0x10,0x00,0x5f,0xc3,0x53,0x57,0xbb,0xc8,0x00,0xbf,0x87, +/*00006f10:*/0x00,0xe8,0x03,0x00,0x5f,0x5b,0xc3,0x9c,0x66,0x50,0x51,0x52,0xfa,0xe8,0x85,0xe7, +/*00006f20:*/0xb2,0x00,0x66,0xb8,0x24,0x01,0x00,0x00,0x66,0xef,0xb2,0x04,0x66,0xed,0x80,0xe4, +/*00006f30:*/0x60,0x80,0xcc,0x01,0x66,0xef,0xb2,0x08,0xec,0x50,0xb0,0x13,0xee,0xb2,0x0c,0x66, +/*00006f40:*/0xed,0x66,0x50,0x50,0xb2,0x08,0xb0,0x93,0xee,0xb2,0x0c,0x58,0x80,0xe4,0xfd,0x80, +/*00006f50:*/0xcc,0x00,0x66,0xef,0xb2,0x0f,0xb9,0xa0,0x00,0x81,0xff,0x87,0x00,0x75,0x03,0xb9, +/*00006f60:*/0x20,0x03,0x33,0xc0,0xee,0x8b,0xc7,0x8a,0xe0,0xec,0x38,0xe0,0x73,0x02,0xe2,0xf9, +/*00006f70:*/0x4b,0x75,0xe3,0xb2,0x08,0xb0,0x93,0xee,0xb2,0x0c,0x66,0x58,0x66,0xef,0xb2,0x08, +/*00006f80:*/0x58,0xee,0xb2,0x00,0x66,0xb8,0x24,0x01,0x00,0x00,0x66,0xef,0xb2,0x04,0x66,0xed, +/*00006f90:*/0x80,0xe4,0xe0,0x66,0xef,0x5a,0x59,0x66,0x58,0x9d,0xc3,0x53,0xbb,0x02,0x00,0xe8, +/*00006fa0:*/0x5e,0xff,0x5b,0xc3,0x53,0xbb,0x05,0x00,0xe8,0x55,0xff,0x5b,0xc3,0x53,0xbb,0x0d, +/*00006fb0:*/0x00,0xe8,0x4c,0xff,0x5b,0xc3,0x53,0xbb,0x1a,0x00,0xe8,0x43,0xff,0x5b,0xc3,0x53, +/*00006fc0:*/0xbb,0x96,0x00,0xe8,0x3a,0xff,0x5b,0xc3,0x53,0xbb,0x04,0x01,0xe8,0x31,0xff,0x5b, +/*00006fd0:*/0xc3,0x53,0xbb,0x86,0x01,0xe8,0x28,0xff,0x5b,0xc3,0xe8,0x2c,0xff,0xe2,0xfb,0xc3, +/*00006fe0:*/0x51,0xb9,0x05,0x00,0xe8,0xf3,0xff,0x59,0xc3,0x51,0xb9,0x0f,0x00,0xe8,0xea,0xff, +/*00006ff0:*/0x59,0xc3,0x51,0xb9,0x32,0x00,0xe8,0xe1,0xff,0x59,0xc3,0x51,0xb9,0x14,0x00,0xe8, +/*00007000:*/0xf0,0xff,0x59,0xc3,0x00,0x09,0x09,0x05,0x05,0x09,0x09,0x11,0x12,0x80,0x20,0x20, +/*00007010:*/0x01,0x01,0x01,0x01,0x01,0x20,0x00,0x00,0x01,0x20,0xff,0xde,0xde,0xde,0xde,0xde, +/*00007020:*/0xde,0xde,0xde,0x7f,0xfe,0xff,0xfe,0xb4,0x0a,0x55,0x83,0xec,0x02,0x8b,0xec,0xe8, +/*00007030:*/0xad,0xef,0xbe,0x0d,0x70,0x8a,0xc4,0x32,0xe4,0x03,0xf0,0xe8,0x67,0xe6,0xb2,0x5b, +/*00007040:*/0xb0,0xff,0xee,0xb2,0x59,0xec,0x2e,0x22,0x44,0x0d,0x2e,0x0a,0x04,0xee,0x81,0xfe, +/*00007050:*/0x0d,0x70,0x74,0x63,0x81,0xfe,0x16,0x70,0x73,0x5d,0xb9,0x00,0x01,0xa8,0x01,0x75, +/*00007060:*/0x43,0xb2,0x53,0xec,0xa8,0x01,0x74,0x20,0xbe,0xbd,0x43,0x1e,0x0e,0x1f,0x32,0xc0, +/*00007070:*/0xb2,0xb0,0xee,0xb2,0xb4,0xad,0x86,0xe0,0x66,0xc1,0xe0,0x08,0xac,0x66,0xc1,0xe0, +/*00007080:*/0x02,0x66,0xef,0xe2,0xf0,0x1f,0xeb,0x2f,0xbe,0xbd,0x43,0x1e,0x0e,0x1f,0x32,0xc0, +/*00007090:*/0xb2,0xb0,0xee,0xb2,0xb4,0xad,0x86,0xe0,0x66,0xc1,0xe0,0x08,0xac,0x66,0xef,0xe2, +/*000070a0:*/0xf4,0x1f,0xeb,0x13,0x66,0x33,0xc0,0xb2,0xb0,0x66,0xef,0xb2,0xb4,0x66,0xef,0x66, +/*000070b0:*/0x05,0x01,0x01,0x01,0x00,0xe2,0xf6,0xe8,0x26,0xef,0x83,0xc4,0x02,0x5d,0xc3,0xe8, +/*000070c0:*/0xe3,0xe5,0xb2,0x5b,0xec,0x26,0x88,0x45,0x02,0xb2,0xb0,0xec,0x26,0x88,0x45,0x01, +/*000070d0:*/0x50,0x83,0xc7,0x03,0x32,0xc0,0xb2,0xb2,0xee,0xb2,0xb4,0xb9,0x00,0x01,0x66,0xed, +/*000070e0:*/0x66,0xab,0x4f,0xe2,0xf9,0x58,0xb2,0xb0,0xee,0xc3,0xe8,0xb8,0xe5,0xb2,0x5b,0x26, +/*000070f0:*/0x8a,0x44,0x02,0xee,0x56,0x32,0xc0,0xb2,0xb0,0xee,0x83,0xc6,0x03,0xb9,0x00,0x01, +/*00007100:*/0xb2,0xb4,0x66,0x26,0x8b,0x04,0x66,0xef,0x83,0xc6,0x03,0xe2,0xf5,0x5e,0xb2,0xb0, +/*00007110:*/0x26,0x8a,0x44,0x01,0xee,0xc3,0x66,0x50,0x66,0x53,0x51,0x52,0xe8,0x86,0xe5,0xb2, +/*00007120:*/0x53,0xec,0x8a,0xe2,0x24,0xfd,0x0c,0x01,0xee,0x8b,0x5e,0x12,0xb5,0x03,0xe8,0x4f, +/*00007130:*/0xf5,0x8b,0x5e,0x12,0xe8,0xb6,0xfd,0xf6,0x46,0x04,0x02,0x74,0x04,0x80,0x66,0x0a, +/*00007140:*/0xfe,0x8a,0x5e,0x06,0x8a,0x7e,0x11,0x80,0xe7,0x0f,0x8a,0x46,0x07,0x8a,0x66,0x11, +/*00007150:*/0xc0,0xec,0x04,0x80,0xe4,0x03,0x8a,0x4e,0x08,0x8a,0x6e,0x11,0xc0,0xed,0x06,0x80, +/*00007160:*/0xe5,0x03,0x3b,0xd8,0x77,0x02,0xfe,0xc7,0x3b,0xc8,0x77,0x02,0xfe,0xc5,0x66,0xc1, +/*00007170:*/0xc0,0x10,0x8b,0xc3,0x66,0x8b,0xd8,0xe8,0x2b,0xe5,0xb8,0x50,0x02,0xe8,0x06,0xe7, +/*00007180:*/0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x00,0x02,0xe8,0xf9,0xe6,0xb2,0x04,0x66, +/*00007190:*/0x8b,0xc3,0x66,0xef,0xc1,0xe1,0x03,0x0f,0xb6,0x46,0x1f,0xc6,0x46,0x1f,0x00,0x03, +/*000071a0:*/0xc8,0x0f,0xb6,0x46,0x09,0x66,0xc1,0xc0,0x10,0x8b,0xc1,0x66,0x8b,0xd8,0xb8,0xc4, +/*000071b0:*/0x02,0xe8,0xd2,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x04,0x02,0xe8,0xc5, +/*000071c0:*/0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x66,0x8b,0x5e,0x0a,0xb8,0x54,0x02,0xe8, +/*000071d0:*/0xb4,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x08,0x02,0xe8,0xa7,0xe6,0xb2, +/*000071e0:*/0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x46,0x10,0x32,0xe4,0x66,0xc1,0xe0,0x10,0x8b, +/*000071f0:*/0x46,0x0e,0x66,0x8b,0xd8,0xb8,0xc8,0x02,0xe8,0x8b,0xe6,0xb2,0x04,0x66,0x8b,0xc3, +/*00007200:*/0x66,0xef,0xb8,0x0c,0x02,0xe8,0x7e,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb2, +/*00007210:*/0x09,0xb0,0x03,0xee,0x8b,0x46,0x14,0x8a,0xc8,0x8a,0xc4,0x83,0xe1,0x7f,0x83,0xe0, +/*00007220:*/0x7f,0x66,0xc1,0xc0,0x10,0x8b,0xc1,0x66,0x8b,0xd8,0xb8,0x34,0x02,0xe8,0x56,0xe6, +/*00007230:*/0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x46,0x16,0x8a,0xc8,0x8a,0xc4,0x8a,0x6e, +/*00007240:*/0x1b,0x8a,0xe5,0x81,0xe1,0xff,0x0f,0xc0,0xec,0x04,0x25,0xff,0x0f,0x66,0xc1,0xc0, +/*00007250:*/0x10,0x8b,0xc1,0x66,0x8b,0xd8,0xb8,0x38,0x02,0xe8,0x2a,0xe6,0xb2,0x04,0x66,0x8b, +/*00007260:*/0xc3,0x66,0xef,0x8a,0x46,0x1a,0x25,0xff,0x00,0x66,0xc1,0xe0,0x10,0x8b,0x46,0x18, +/*00007270:*/0x66,0x8b,0xd8,0xb8,0x30,0x02,0xe8,0x0d,0xe6,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef, +/*00007280:*/0xb2,0x50,0x8a,0x46,0x04,0x8a,0x66,0x3d,0xef,0xb8,0x24,0x02,0xe8,0xf7,0xe5,0xb2, +/*00007290:*/0x04,0x66,0x33,0xc0,0x66,0xef,0xb8,0x2c,0x02,0xe8,0xea,0xe5,0xb2,0x04,0x8a,0x46, +/*000072a0:*/0x07,0x8a,0x66,0x11,0xc0,0xec,0x04,0x80,0xe4,0x03,0x40,0x66,0xef,0xe8,0x0a,0x00, +/*000072b0:*/0xe8,0x8a,0xec,0x5a,0x59,0x66,0x5b,0x66,0x58,0xc3,0x55,0xe8,0xcf,0xfa,0x5d,0xc3, +/*000072c0:*/0x8b,0xd8,0x80,0xf9,0x08,0x7e,0x03,0xb4,0x01,0xc3,0x80,0xfd,0x81,0x75,0x02,0x8e, +/*000072d0:*/0xc2,0x80,0xf9,0x08,0x7e,0x02,0xb1,0x08,0xe8,0x83,0x93,0xc3,0xe8,0xc6,0xe3,0xb8, +/*000072e0:*/0x02,0x0a,0xf6,0xc1,0x01,0x74,0x0f,0xb2,0x51,0xec,0x24,0x0f,0x3c,0x08,0x7e,0x02, +/*000072f0:*/0xb0,0x08,0x8a,0xe0,0xb0,0x03,0x8a,0xd8,0xb2,0x53,0xec,0x24,0xfa,0x0a,0xc3,0xee, +/*00007300:*/0xe8,0x26,0xfd,0xc3,0x52,0xb2,0xfa,0xe8,0x86,0xe3,0x0b,0xc0,0x75,0x03,0xb8,0x80, +/*00007310:*/0x00,0x5a,0xc3,0x53,0xbb,0x00,0x0f,0xe8,0x16,0xe5,0x5b,0xc3,0x53,0xbb,0x08,0x0f, +/*00007320:*/0xe8,0xc4,0xe4,0x5b,0xc3,0x53,0xbb,0x2c,0x0f,0xe8,0x04,0xe5,0x5b,0xc3,0x53,0xbb, +/*00007330:*/0x2c,0x0f,0xe8,0xf6,0xe4,0x5b,0xc3,0x53,0xbb,0x10,0x0f,0xe8,0xf2,0xe4,0xc1,0xe8, +/*00007340:*/0x04,0x5b,0xc3,0x53,0xbb,0x18,0x0f,0xe8,0x18,0xe5,0x5b,0xc3,0xb4,0x0a,0xc3,0x51, +/*00007350:*/0x52,0x83,0xc0,0x63,0x33,0xd2,0xb9,0x64,0x00,0xf7,0xf1,0x5a,0x59,0xc3,0x53,0x52, +/*00007360:*/0xe8,0x42,0xe3,0xb2,0x51,0xec,0x24,0x0f,0x3c,0x08,0x7e,0x02,0xb0,0x08,0x0f,0xb6, +/*00007370:*/0xd8,0x2e,0x8a,0x87,0x79,0x73,0x5a,0x5b,0xc3,0x00,0x04,0x08,0x10,0x10,0x18,0x20, +/*00007380:*/0x10,0x10,0xe8,0xd9,0xff,0x04,0x04,0xc0,0xe8,0x03,0xc3,0x52,0x50,0xe8,0x15,0xe3, +/*00007390:*/0xb2,0x55,0xec,0x0c,0x04,0xee,0x58,0x5a,0xc3,0x52,0x50,0xe8,0x07,0xe3,0xb2,0x55, +/*000073a0:*/0xec,0x24,0xfb,0xee,0x58,0x5a,0xc3,0x00,0x0b,0x28,0x02,0x24,0x02,0x24,0x03,0x3c, +/*000073b0:*/0x03,0xbc,0x0d,0x00,0x00,0x74,0x07,0xe0,0x15,0xe4,0x15,0xe8,0x15,0xec,0x15,0xf0, +/*000073c0:*/0x15,0xf4,0x15,0x70,0x07,0x00,0x00,0x9c,0xfa,0x0a,0xc9,0x75,0x05,0xb9,0xcb,0x11, +/*000073d0:*/0xeb,0x34,0x80,0xf9,0x01,0x75,0x05,0xe8,0x35,0x00,0xeb,0x2a,0x80,0xf9,0x02,0x75, +/*000073e0:*/0x05,0xe8,0x57,0x01,0xeb,0x20,0x80,0xf9,0x03,0x75,0x1f,0x2e,0x8b,0x16,0x26,0x01, +/*000073f0:*/0x0b,0xdb,0x74,0x02,0x8b,0xd3,0xb2,0x16,0x2e,0xa1,0x22,0x01,0xef,0xe8,0xc6,0xf0, +/*00007400:*/0xbe,0xef,0x02,0xe8,0x66,0xf5,0x9d,0x33,0xc0,0xc3,0x9d,0xb8,0x00,0x01,0xc3,0x57, +/*00007410:*/0x8e,0xc2,0x8b,0xdf,0x83,0xc7,0x20,0xe8,0x12,0xcc,0xe8,0xb5,0xcc,0xe8,0xee,0xcd, +/*00007420:*/0x5b,0xe8,0x01,0x00,0xc3,0x57,0x51,0x52,0x56,0x53,0x8b,0xc7,0x2b,0xc3,0x26,0x89, +/*00007430:*/0x47,0x08,0xe8,0x70,0xe2,0xb2,0x2b,0xec,0x24,0xdf,0xee,0xbb,0xf8,0x03,0xe8,0xb5, +/*00007440:*/0xe3,0xa8,0x02,0x74,0x04,0xec,0x0c,0x20,0xee,0x32,0xd2,0xfc,0xb9,0x40,0x00,0x57, +/*00007450:*/0x66,0xed,0x66,0xab,0x80,0xc2,0x04,0xe2,0xf7,0xe8,0x49,0xe2,0xb2,0x7c,0xec,0x50, +/*00007460:*/0x24,0xdf,0xee,0xe8,0x7a,0x01,0xe8,0x3c,0xe2,0xb2,0x2b,0xec,0xa8,0x20,0x74,0x09, +/*00007470:*/0xb2,0x7c,0xec,0x0c,0x20,0xee,0xe8,0x67,0x01,0xb2,0x7c,0x58,0xee,0xb9,0x40,0x00, +/*00007480:*/0xbe,0x00,0x01,0xe8,0xca,0x00,0xb9,0x40,0x00,0xbe,0x00,0x02,0xe8,0xc1,0x00,0xe8, +/*00007490:*/0xe6,0x00,0xe8,0x10,0xe2,0xb2,0x2b,0xec,0xa8,0x20,0x74,0x09,0xb9,0x40,0x00,0xbe, +/*000074a0:*/0x00,0x03,0xe8,0xab,0x00,0xb9,0x40,0x00,0xbe,0x00,0x04,0xe8,0xa2,0x00,0x5f,0x5b, +/*000074b0:*/0x5e,0x5a,0x59,0x5f,0x81,0xc7,0x34,0x0d,0xe8,0x19,0xf4,0xc3,0x66,0x50,0x53,0x51, +/*000074c0:*/0x52,0x56,0x57,0xfc,0x8b,0x77,0x08,0x03,0xf3,0xe8,0xd9,0xe1,0x32,0xd2,0xb9,0x40, +/*000074d0:*/0x00,0x66,0xad,0x66,0xef,0x80,0xc2,0x04,0xe2,0xf7,0xe8,0xc8,0xe1,0xb2,0x7c,0xec, +/*000074e0:*/0x50,0x24,0xdf,0xee,0xe8,0x15,0x01,0xe8,0xbb,0xe1,0xb2,0x2b,0xec,0xa8,0x20,0x74, +/*000074f0:*/0x09,0xb2,0x7c,0xec,0x0c,0x20,0xee,0xe8,0x02,0x01,0xb2,0x7c,0x58,0xee,0xb9,0x40, +/*00007500:*/0x00,0xbf,0x00,0x01,0xe8,0x5d,0x00,0xb9,0x40,0x00,0xbf,0x00,0x02,0xe8,0x54,0x00, +/*00007510:*/0xe8,0x99,0x00,0xb2,0x2b,0xec,0xa8,0x20,0x74,0x09,0xb9,0x40,0x00,0xbf,0x00,0x03, +/*00007520:*/0xe8,0x41,0x00,0xb9,0x40,0x00,0xbf,0x00,0x04,0xe8,0x38,0x00,0x5f,0x5e,0x5a,0x59, +/*00007530:*/0x5b,0x66,0x58,0x81,0xc6,0x34,0x0d,0xe8,0xe2,0xf3,0xc3,0x8b,0xc3,0x8b,0xdf,0x8e, +/*00007540:*/0xda,0xe8,0x78,0xff,0x1e,0x07,0xe8,0xd7,0xcb,0xe8,0x6b,0xcc,0xe8,0x0c,0xcd,0xc3, +/*00007550:*/0xb2,0x00,0x66,0x0f,0xb7,0xc6,0x66,0xef,0xb2,0x04,0x66,0xed,0x66,0xab,0x83,0xc6, +/*00007560:*/0x04,0xe2,0xed,0xc3,0xb2,0x00,0x66,0x0f,0xb7,0xc7,0x66,0xef,0xb2,0x04,0x66,0xad, +/*00007570:*/0x66,0xef,0x83,0xc7,0x04,0xe2,0xed,0xc3,0x56,0x50,0x52,0xe8,0x27,0xe1,0xbe,0xa7, +/*00007580:*/0x73,0xe8,0x11,0x00,0xb2,0x2b,0xec,0xa8,0x10,0x75,0x06,0xbe,0xb5,0x73,0xe8,0x04, +/*00007590:*/0x00,0x5a,0x58,0x5e,0xc3,0xb2,0x00,0x2e,0x8b,0x04,0x83,0xf8,0x00,0x74,0x0c,0xef, +/*000075a0:*/0xb2,0x04,0x66,0xed,0x66,0xab,0x83,0xc6,0x02,0xeb,0xea,0xc3,0x57,0x50,0x52,0xe8, +/*000075b0:*/0xf3,0xe0,0xbf,0xa7,0x73,0xe8,0x11,0x00,0xb2,0x2b,0xec,0xa8,0x10,0x75,0x06,0xbf, +/*000075c0:*/0xb5,0x73,0xe8,0x04,0x00,0x5a,0x58,0x5f,0xc3,0xb2,0x00,0x2e,0x8b,0x05,0x83,0xf8, +/*000075d0:*/0x00,0x74,0x0c,0xef,0xb2,0x04,0x66,0xad,0x66,0xef,0x83,0xc7,0x02,0xeb,0xea,0xc3, +/*000075e0:*/0x51,0xb9,0x00,0x01,0xe8,0xbe,0xe0,0xb2,0xb2,0xed,0x50,0x32,0xc0,0xee,0xb2,0xb8, +/*000075f0:*/0x66,0xed,0x66,0xab,0xe2,0xf8,0xb2,0xb2,0x58,0xee,0x59,0xc3,0x51,0xb9,0x00,0x01, +/*00007600:*/0xe8,0xa2,0xe0,0xb2,0xb2,0xed,0x50,0x32,0xc0,0xee,0xb2,0xb8,0x66,0xad,0x66,0xef, +/*00007610:*/0xe2,0xf8,0xb2,0xb0,0x58,0xee,0x59,0xc3,0x08,0x1f,0x00,0x58,0xf0,0x01,0x68,0x00, +/*00007620:*/0x03,0x6c,0x00,0x03,0xe2,0x0f,0x00,0x00,0x42,0x70,0x00,0x00,0x1a,0x00,0x80,0x26, +/*00007630:*/0x00,0x40,0x2a,0x10,0x40,0x4c,0xff,0xff,0x4e,0x1f,0x00,0x00,0x51,0x52,0x53,0xe8, +/*00007640:*/0x63,0xe0,0xb2,0x55,0xec,0x50,0x0c,0x80,0xee,0xbb,0x80,0x02,0x66,0xb8,0x30,0xb6, +/*00007650:*/0x01,0x00,0x0a,0xc1,0xe8,0x62,0xe1,0xb2,0x58,0xed,0x50,0x25,0xfc,0x7f,0x0c,0x0a, +/*00007660:*/0xef,0xe8,0xa5,0xf8,0xec,0x8a,0xc8,0x58,0xef,0x58,0xb2,0x55,0xee,0x66,0x33,0xc0, +/*00007670:*/0xe8,0x46,0xe1,0xf6,0xc1,0x80,0x5b,0x5a,0x59,0xc3,0x51,0xb0,0x08,0xe8,0x21,0xf1, +/*00007680:*/0x50,0xb8,0x08,0x00,0xb5,0x3f,0xe8,0x34,0xf1,0xb1,0xc0,0xe8,0xae,0xff,0x74,0x04, +/*00007690:*/0xb0,0x02,0xeb,0x0b,0xb1,0x40,0xe8,0xa3,0xff,0xb0,0x00,0x74,0x02,0xb0,0x01,0x8a, +/*000076a0:*/0xc8,0x58,0x8a,0xe0,0xb0,0x08,0xe8,0x0c,0xf1,0x8a,0xc1,0x59,0xc3,0x51,0x52,0x53, +/*000076b0:*/0xe8,0xf2,0xdf,0xbb,0xf8,0x03,0xe8,0x72,0xe1,0x50,0x0c,0x80,0xe8,0x83,0xe0,0xe8, +/*000076c0:*/0x2a,0xe1,0x24,0xf0,0x0c,0x02,0xe8,0x7e,0xe0,0xb1,0xc0,0xbb,0x8c,0x08,0xe8,0x91, +/*000076d0:*/0xe1,0x66,0x50,0x66,0xb8,0x13,0x02,0x00,0x00,0xe8,0xdd,0xe0,0xbb,0x80,0x02,0x66, +/*000076e0:*/0xb8,0x03,0x80,0x01,0x00,0x0a,0xc1,0xe8,0xcf,0xe0,0xb2,0x7c,0xec,0x50,0x0c,0x82, +/*000076f0:*/0xee,0xe8,0xec,0xf8,0xed,0x8a,0xcc,0x58,0xee,0xbb,0x80,0x02,0x66,0x33,0xc0,0xe8, +/*00007700:*/0xb7,0xe0,0x66,0x58,0xbb,0x8c,0x08,0xe8,0xaf,0xe0,0xbb,0xf8,0x03,0x58,0xe8,0x73, +/*00007710:*/0xe0,0x32,0xc0,0xf6,0xc1,0x08,0x74,0x02,0xb0,0x02,0x5b,0x5a,0x59,0xc3,0x51,0x52, +/*00007720:*/0xe8,0x57,0xff,0xb4,0x03,0xe8,0xbc,0xea,0x5a,0x59,0xc3,0x51,0x52,0xe8,0x7d,0xff, +/*00007730:*/0xb4,0x03,0xe8,0xa6,0xea,0x5a,0x59,0xc3,0xe8,0xe3,0xff,0xe8,0xed,0xff,0xc3,0x52, +/*00007740:*/0x32,0xe4,0x33,0xd2,0xb0,0x0d,0xcd,0x17,0xf6,0xc4,0x29,0x75,0x08,0x32,0xe4,0x33, +/*00007750:*/0xd2,0xb0,0x0a,0xcd,0x17,0x5a,0xc3,0x06,0x1e,0x60,0xe8,0x2e,0x01,0x2e,0x83,0x0e, +/*00007760:*/0x5a,0x56,0x00,0x75,0x6e,0x80,0x3e,0x00,0x05,0x01,0x74,0x67,0xc6,0x06,0x00,0x05, +/*00007770:*/0x01,0x8a,0x1e,0x62,0x04,0x32,0xff,0xd1,0xe3,0x8b,0xfb,0x8b,0x85,0x50,0x04,0x8a, +/*00007780:*/0x3e,0x62,0x04,0x50,0x32,0xf6,0x8a,0x0e,0x84,0x04,0x32,0xed,0x41,0x51,0x8b,0x0e, +/*00007790:*/0x4a,0x04,0x32,0xd2,0xe8,0xa8,0xff,0xf6,0xc4,0x29,0x75,0x3d,0x51,0x52,0x89,0x95, +/*000077a0:*/0x50,0x04,0xb4,0x08,0xe8,0x61,0xa3,0x0a,0xc0,0x75,0x02,0xb0,0x20,0x33,0xd2,0x32, +/*000077b0:*/0xe4,0xcd,0x17,0xf6,0xc4,0x29,0x75,0x1f,0x5a,0xfe,0xc2,0x59,0xe2,0xde,0xfe,0xc6, +/*000077c0:*/0x59,0xe2,0xca,0xe8,0x79,0xff,0x32,0xc0,0xa2,0x00,0x05,0x58,0x89,0x85,0x50,0x04, +/*000077d0:*/0xe8,0xe4,0x03,0x61,0x1f,0x07,0xcf,0x5a,0x59,0x59,0xb0,0xff,0xeb,0xea,0x52,0x2a, +/*000077e0:*/0xf5,0x38,0xc6,0x7d,0x02,0x32,0xc0,0x2e,0x8e,0x06,0x52,0x56,0x5a,0xc3,0xa0,0x85, +/*000077f0:*/0x04,0xf6,0xe3,0x8a,0xf7,0x8b,0xd8,0x8b,0xca,0xba,0xc4,0x03,0xb8,0x02,0x0f,0xef, +/*00007800:*/0xb4,0x02,0xe8,0x6d,0x00,0x8b,0xd1,0x32,0xed,0x8a,0xe6,0x8a,0xc6,0xf3,0xaa,0x03, +/*00007810:*/0xfd,0x8a,0xca,0x4b,0x75,0xf7,0x32,0xe4,0xe8,0x57,0x00,0xc3,0x53,0x8a,0x1e,0x62, +/*00007820:*/0x04,0x0b,0xc0,0x75,0x04,0x0a,0xdb,0x74,0x03,0xe8,0x6a,0x03,0x5b,0x8b,0xf8,0x2b, +/*00007830:*/0xd1,0x81,0xc2,0x01,0x01,0x8a,0xc3,0x32,0xe4,0xc3,0x8a,0xc6,0x32,0xf6,0x2b,0xea, +/*00007840:*/0x0a,0xdb,0x74,0x2a,0x2a,0xc3,0xf6,0x26,0x85,0x04,0x8b,0xc8,0x52,0xb4,0x01,0xe8, +/*00007850:*/0x20,0x00,0xb2,0xc4,0xb8,0x02,0x0f,0xef,0x5a,0x1e,0x06,0x1f,0x8b,0xc1,0x8b,0xca, +/*00007860:*/0xf3,0xa4,0x03,0xf5,0x03,0xfd,0x48,0x75,0xf5,0x1f,0xe8,0x81,0xff,0xc3,0x8a,0xd8, +/*00007870:*/0xeb,0xf8,0xba,0xce,0x03,0xb0,0x05,0xee,0x42,0xec,0x24,0xfc,0x0a,0xc4,0xee,0x4a, +/*00007880:*/0xc3,0x9c,0xfa,0xee,0x42,0xeb,0x00,0xec,0x4a,0x9d,0xc3,0x2e,0x8e,0x1e,0x50,0x56, +/*00007890:*/0xc3,0x1e,0x2e,0x8e,0x1e,0x50,0x56,0x8b,0x16,0x63,0x04,0x80,0xc2,0x06,0x1f,0xc3, +/*000078a0:*/0x1e,0x2e,0x8e,0x1e,0x50,0x56,0x8b,0x16,0x63,0x04,0x1f,0xc3,0x51,0xb9,0x01,0x00, +/*000078b0:*/0xe8,0x0b,0x00,0x59,0xc3,0x51,0xb9,0x02,0x00,0xe8,0x02,0x00,0x59,0xc3,0x50,0x51, +/*000078c0:*/0xb0,0xb6,0xe6,0x43,0xb0,0x33,0xe6,0x42,0xb0,0x05,0xe6,0x42,0xe4,0x61,0x8a,0xe0, +/*000078d0:*/0x0c,0x03,0xe6,0x61,0x8a,0xc4,0x50,0x51,0xb9,0x19,0x00,0xe8,0x02,0xf7,0xe2,0xfb, +/*000078e0:*/0x59,0x58,0xe6,0x61,0x59,0x58,0xc3,0x50,0xba,0xcc,0x03,0xec,0xb2,0xd4,0xa8,0x01, +/*000078f0:*/0x75,0x02,0xb2,0xb4,0x58,0xc3,0xe8,0xee,0xff,0x80,0xc2,0x06,0xc3,0xe8,0xf6,0xff, +/*00007900:*/0xec,0xc3,0x0b,0xc0,0x74,0x03,0xe8,0x07,0x02,0x03,0x06,0x4e,0x04,0x81,0xc2,0x01, +/*00007910:*/0x01,0x2b,0xd1,0x32,0xed,0x8b,0x2e,0x4a,0x04,0x8b,0xf8,0x8b,0xf0,0x8b,0xc5,0xf6, +/*00007920:*/0xe3,0xd1,0xe0,0xd1,0xe5,0x0a,0xdb,0x75,0x02,0x8a,0xde,0x38,0xf3,0x7e,0x02,0x8a, +/*00007930:*/0xde,0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x54,0x56,0xa0,0x10,0x04,0x24,0x30,0x3c, +/*00007940:*/0x30,0x74,0x05,0x2e,0x8e,0x06,0x56,0x56,0x8b,0xc1,0xe8,0xb5,0xff,0x03,0xf0,0x3a, +/*00007950:*/0x16,0x4a,0x04,0x74,0x06,0x06,0x1f,0xe8,0x2e,0x00,0xc3,0x06,0x1f,0xe8,0x53,0x00, +/*00007960:*/0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x54,0x56,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30, +/*00007970:*/0x74,0x05,0x2e,0x8e,0x06,0x56,0x56,0x8a,0xc1,0x8a,0xe6,0xe8,0x84,0xff,0xf7,0xdd, +/*00007980:*/0x2b,0xf0,0x06,0x1f,0xe8,0x01,0x00,0xc3,0x53,0x8a,0xce,0x2a,0xcb,0x32,0xed,0x32, +/*00007990:*/0xf6,0x2b,0xea,0x2b,0xea,0xe3,0x0e,0x8a,0xe1,0x8b,0xca,0xf3,0xa5,0x03,0xf5,0x03, +/*000079a0:*/0xfd,0xfe,0xcc,0x75,0xf4,0x58,0xb0,0x20,0x8a,0xca,0xf3,0xab,0x03,0xfd,0xfe,0xcb, +/*000079b0:*/0x75,0xf6,0xc3,0x53,0x8a,0xc6,0x2a,0xc3,0x74,0x06,0xf6,0xe2,0x8b,0xc8,0xf3,0xa5, +/*000079c0:*/0x58,0x8b,0xc8,0xf6,0xe2,0x91,0xb0,0x20,0xf3,0xab,0xc3,0x8b,0xd8,0xe8,0x2e,0x00, +/*000079d0:*/0x2e,0x8e,0x1e,0x56,0x56,0x8a,0xc3,0x22,0xdf,0xd3,0xe3,0xa8,0x80,0x74,0x03,0x30, +/*000079e0:*/0x1c,0xc3,0xf6,0xd7,0x8a,0x34,0x22,0xf7,0x0a,0xde,0x88,0x1c,0xc3,0x8a,0xfc,0xe8, +/*000079f0:*/0x0c,0x00,0x2e,0x8e,0x1e,0x56,0x56,0x8a,0x04,0xd2,0xe8,0x22,0xc7,0xc3,0xb0,0x28, +/*00007a00:*/0xf6,0xe2,0xf6,0xc2,0x01,0x74,0x03,0x05,0xd8,0x1f,0x8b,0xf1,0xc1,0xee,0x02,0x80, +/*00007a10:*/0xff,0x05,0x7f,0x0c,0x03,0xf0,0xf6,0xd1,0x80,0xe1,0x03,0xd0,0xe1,0xb7,0x03,0xc3, +/*00007a20:*/0xd1,0xee,0x03,0xf0,0xf6,0xd1,0x80,0xe1,0x07,0xb7,0x01,0xc3,0xfc,0x8a,0xd8,0x2e, +/*00007a30:*/0x8e,0x06,0x56,0x56,0x8b,0xc1,0xe8,0x86,0x00,0x75,0x02,0x8a,0xde,0x03,0xf0,0xe8, +/*00007a40:*/0x24,0x00,0xc3,0xfc,0x8a,0xd8,0x2e,0x8e,0x06,0x56,0x56,0x8a,0xc1,0x8a,0xe6,0xe8, +/*00007a50:*/0x6d,0x00,0x75,0x02,0x8a,0xde,0xf7,0xdd,0x81,0xc6,0xf0,0x00,0x81,0xc7,0xf0,0x00, +/*00007a60:*/0x2b,0xf0,0xe8,0x01,0x00,0xc3,0x8a,0xce,0x2a,0xcb,0xe3,0x2c,0x51,0x8a,0xca,0x56, +/*00007a70:*/0x57,0xd1,0xe9,0xf3,0xa5,0x13,0xc9,0xf3,0xa4,0x8a,0xca,0x2b,0xf1,0x2b,0xf9,0x81, +/*00007a80:*/0xc6,0x00,0x20,0x81,0xc7,0x00,0x20,0xd1,0xe9,0xf3,0xa5,0x13,0xc9,0xf3,0xa4,0x5f, +/*00007a90:*/0x5e,0x03,0xf5,0x03,0xfd,0x59,0xe2,0xd4,0x8a,0xc7,0x8a,0xe7,0x8a,0xca,0x57,0xd1, +/*00007aa0:*/0xe9,0xf3,0xab,0x13,0xc9,0xf3,0xaa,0x8a,0xca,0x2b,0xf9,0x81,0xc7,0x00,0x20,0xd1, +/*00007ab0:*/0xe9,0xf3,0xab,0x13,0xc9,0xf3,0xaa,0x5f,0x03,0xfd,0xfe,0xcb,0x75,0xde,0xc3,0xe8, +/*00007ac0:*/0xb0,0x00,0x81,0xc2,0x01,0x01,0x2b,0xd1,0x38,0xf3,0x76,0x02,0x32,0xdb,0x51,0xb1, +/*00007ad0:*/0x02,0xd2,0xe6,0xd2,0xe3,0x59,0x32,0xed,0xbd,0x50,0x00,0x80,0x3e,0x49,0x04,0x06, +/*00007ae0:*/0x74,0x04,0xd0,0xe2,0xd1,0xe0,0x06,0x1f,0x8b,0xf8,0x8b,0xf0,0xb0,0x50,0xf6,0xe3, +/*00007af0:*/0x0a,0xdb,0xc3,0x52,0x53,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04,0xe8, +/*00007b00:*/0x0e,0x00,0x50,0xd1,0xeb,0xa1,0x4c,0x04,0xf7,0xe3,0x5b,0x03,0xc3,0x5b,0x5a,0xc3, +/*00007b10:*/0x52,0x8b,0xd0,0xa0,0x4a,0x04,0xf6,0xe4,0x32,0xf6,0x03,0xc2,0xd1,0xe0,0x5a,0xc3, +/*00007b20:*/0x8b,0xe8,0x83,0xe5,0x0f,0x2e,0x8a,0xa6,0x38,0x7b,0x8b,0xe8,0xc1,0xed,0x04,0x83, +/*00007b30:*/0xe5,0x0f,0x2e,0x8a,0x86,0x38,0x7b,0xc3,0x00,0x03,0x0c,0x0f,0x30,0x33,0x3c,0x3f, +/*00007b40:*/0xc0,0xc3,0xcc,0xcf,0xf0,0xf3,0xfc,0xff,0x26,0x8b,0x04,0x86,0xe0,0xba,0x00,0x80, +/*00007b50:*/0xf6,0xc4,0xc0,0x74,0x02,0x0a,0xd6,0xd0,0xee,0xc1,0xe0,0x02,0x75,0xf2,0x88,0x56, +/*00007b60:*/0x00,0x45,0xc3,0x8b,0x16,0x63,0x04,0x8a,0xc5,0x86,0xe0,0xef,0x8a,0xe1,0xfe,0xc0, +/*00007b70:*/0xef,0xc3,0x52,0x8b,0xd0,0x8a,0xc4,0xf6,0x26,0x4a,0x04,0xc1,0xe0,0x02,0x32,0xf6, +/*00007b80:*/0x03,0xc2,0x5a,0xc3,0x53,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04,0xd1, +/*00007b90:*/0xeb,0xe8,0x02,0x00,0x5b,0xc3,0x52,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0xf6,0x26, +/*00007ba0:*/0x85,0x04,0xf7,0x26,0x4a,0x04,0x5a,0x03,0xc2,0x0a,0xdb,0x74,0x08,0x03,0x06,0x4c, +/*00007bb0:*/0x04,0xfe,0xcb,0x75,0xf8,0x5a,0xc3,0x52,0x8b,0xd0,0xa0,0x4a,0x04,0xf6,0xe4,0x32, +/*00007bc0:*/0xf6,0x03,0xc2,0xd1,0xe0,0x03,0x06,0x4e,0x04,0xd1,0xf8,0x8b,0xc8,0xb4,0x0e,0xe8, +/*00007bd0:*/0x91,0xff,0x5a,0xc3,0x8b,0xc2,0xf7,0x26,0x4a,0x04,0x8b,0xf9,0xc1,0xef,0x03,0x03, +/*00007be0:*/0xf8,0x0a,0xff,0x74,0x0a,0x8a,0xc7,0x32,0xe4,0xf7,0x26,0x4c,0x04,0x03,0xf8,0x80, +/*00007bf0:*/0xe1,0x07,0xb4,0x80,0xd2,0xec,0xc3,0xe8,0xfc,0xfc,0xec,0xc3,0xe8,0xf8,0xff,0xb2, +/*00007c00:*/0xc0,0xb0,0x20,0xee,0xc3,0xe8,0xef,0xff,0xb2,0xc0,0xb0,0x00,0xee,0xc3,0xc4,0x3e, +/*00007c10:*/0xa8,0x04,0x26,0xc4,0x7d,0x04,0x8c,0xc5,0x0b,0xef,0xc3,0x53,0xb0,0x0e,0xe8,0x60, +/*00007c20:*/0xfc,0x8a,0xe0,0xb0,0x0f,0xe8,0x59,0xfc,0x8b,0xd8,0xb8,0x0e,0xaa,0xef,0xb8,0x0f, +/*00007c30:*/0x55,0xef,0xb0,0x0e,0xe8,0x4a,0xfc,0x3c,0xaa,0x74,0x0d,0xb0,0x0f,0xe8,0x41,0xfc, +/*00007c40:*/0x3c,0x55,0x74,0x04,0x32,0xc0,0x5b,0xc3,0xb0,0x0e,0x8a,0xe7,0xef,0xfe,0xc0,0x8a, +/*00007c50:*/0xe3,0xef,0xb0,0x01,0x0a,0xc0,0x5b,0xc3,0x8a,0xee,0x8a,0x36,0x85,0x04,0x06,0x1f, +/*00007c60:*/0x0a,0xdb,0x74,0x25,0x8a,0xc5,0x2a,0xc3,0xf6,0xe6,0x8b,0xc8,0x52,0x32,0xf6,0xc1, +/*00007c70:*/0xe2,0x02,0x8b,0xc2,0xd1,0xe2,0x2b,0xd5,0x51,0x8b,0xc8,0xf3,0xa5,0x2b,0xfa,0x2b, +/*00007c80:*/0xf2,0x59,0xe2,0xf4,0x5a,0xe8,0x05,0x00,0xc3,0x8a,0xdd,0xeb,0xf8,0x8a,0xc6,0xf6, +/*00007c90:*/0xe3,0x8b,0xc8,0x8a,0xc7,0x8a,0xe0,0x32,0xf6,0xc1,0xe2,0x02,0x8b,0xda,0xd1,0xe2, +/*00007ca0:*/0x8b,0xf1,0x2b,0xd5,0x8b,0xcb,0xf3,0xab,0x2b,0xfa,0x4e,0x75,0xf7,0xc3,0xe8,0xda, +/*00007cb0:*/0xfb,0x89,0x0e,0x60,0x04,0x8a,0xc5,0x24,0x60,0xa8,0x20,0x74,0x06,0xb9,0x00,0x1e, +/*00007cc0:*/0xe9,0x97,0x00,0xf6,0x06,0x87,0x04,0x01,0x74,0x03,0xe9,0x8d,0x00,0x80,0x3e,0x49, +/*00007cd0:*/0x04,0x07,0x74,0x08,0x80,0x3e,0x49,0x04,0x04,0x7c,0x01,0xc3,0xf6,0x06,0x87,0x04, +/*00007ce0:*/0x08,0x74,0x03,0xe9,0x69,0x9e,0x8a,0x36,0x85,0x04,0x8a,0xd6,0xfe,0xca,0x38,0xcd, +/*00007cf0:*/0x7e,0x1f,0x0a,0xc9,0x74,0x64,0x8a,0xe9,0x8a,0xce,0xfe,0xc9,0xeb,0x5c,0x38,0xd1, +/*00007d00:*/0x74,0x58,0x8a,0xce,0x80,0xfd,0x03,0x7c,0x04,0x8a,0xe9,0xd0,0xed,0xfe,0xc9,0xeb, +/*00007d10:*/0x49,0x80,0xf9,0x03,0x7e,0x44,0x8a,0xe1,0x2a,0xe5,0x0a,0xe4,0x75,0x0a,0x38,0xca, +/*00007d20:*/0x74,0x38,0xfe,0xca,0x38,0xca,0x74,0x32,0x8a,0xc5,0x0a,0xc1,0x38,0xf0,0x7e,0x0a, +/*00007d30:*/0x80,0xfc,0x02,0x7e,0x12,0x80,0xfd,0x02,0x7f,0xc8,0x80,0xfc,0x03,0x7d,0xbf,0x8a, +/*00007d40:*/0xd6,0xfe,0xca,0x38,0xd1,0x74,0x13,0x8a,0xce,0xfe,0xc9,0xfe,0xc9,0x8a,0xe9,0x2a, +/*00007d50:*/0xec,0x80,0xfe,0x08,0x7f,0x04,0xfe,0xc1,0xfe,0xc5,0xb4,0x0a,0xe8,0x04,0xfe,0xc3, +/*00007d60:*/0x1e,0x52,0x06,0x1f,0x51,0x56,0x57,0x33,0xdb,0x8b,0xc6,0x03,0xc2,0x73,0x0b,0xb0, +/*00007d70:*/0x01,0xe8,0xae,0x00,0x81,0xc6,0x00,0x80,0xb7,0xff,0x8b,0xc7,0x03,0xc2,0x73,0x0b, +/*00007d80:*/0xb0,0x01,0xe8,0xa5,0x00,0x81,0xc7,0x00,0x80,0xb3,0xff,0x8b,0xca,0xd1,0xe9,0xf3, +/*00007d90:*/0xa5,0x0b,0xdb,0x74,0x12,0x0a,0xff,0x74,0x05,0xb0,0xff,0xe8,0x84,0x00,0x0a,0xdb, +/*00007da0:*/0x74,0x05,0xb0,0xff,0xe8,0x83,0x00,0x5f,0x5e,0x59,0xe8,0x40,0x00,0xe2,0xb5,0x5a, +/*00007db0:*/0x1f,0xc3,0xa0,0x85,0x04,0xf6,0xe3,0x8b,0xc8,0x51,0x52,0x32,0xdb,0x8b,0xf7,0x8b, +/*00007dc0:*/0xc7,0x03,0xc2,0x73,0x0b,0xb0,0x01,0xe8,0x60,0x00,0x81,0xc7,0x00,0x80,0xb3,0xff, +/*00007dd0:*/0x8a,0xc7,0x8a,0xe7,0x8b,0xca,0xd1,0xe9,0xf3,0xab,0x0a,0xdb,0x74,0x05,0xb0,0xff, +/*00007de0:*/0xe8,0x47,0x00,0x8b,0xfe,0xe8,0x1f,0x00,0x5a,0x59,0xe2,0xcd,0xc3,0x8b,0xc6,0x0b, +/*00007df0:*/0xed,0x78,0x0b,0x03,0xf5,0x73,0x10,0xb0,0x02,0xe8,0x26,0x00,0xeb,0x09,0x03,0xf5, +/*00007e00:*/0x72,0x05,0xb0,0xfe,0xe8,0x1b,0x00,0x8b,0xc7,0x0b,0xed,0x78,0x0b,0x03,0xfd,0x73, +/*00007e10:*/0x10,0xb0,0x02,0xe8,0x14,0x00,0xeb,0x09,0x03,0xfd,0x72,0x05,0xb0,0xfe,0xe8,0x09, +/*00007e20:*/0x00,0xc3,0x50,0x8a,0xe0,0xe8,0xf3,0xa2,0x58,0xc3,0x50,0x8a,0xe0,0xe8,0xf7,0xa2, +/*00007e30:*/0x58,0xc3,0x66,0x8b,0xc7,0x66,0xc1,0xe8,0x0c,0x24,0xfe,0xe8,0xd7,0xa2,0x66,0x8b, +/*00007e40:*/0xc6,0x66,0xc1,0xe8,0x0c,0x24,0xfe,0xe8,0xbb,0xa2,0xc1,0xe6,0x03,0xc1,0xe7,0x03, +/*00007e50:*/0xc1,0xe5,0x03,0xc1,0xe2,0x03,0x0a,0xdb,0x74,0x13,0x8a,0xc5,0x2a,0xc3,0xf6,0x26, +/*00007e60:*/0x85,0x04,0x8b,0xc8,0x53,0xe8,0xf8,0xfe,0x5b,0xe8,0x46,0xff,0xc3,0x8a,0xdd,0xeb, +/*00007e70:*/0xf8,0x66,0x57,0x66,0x56,0x66,0x52,0x66,0x50,0xe8,0x62,0xf9,0x8a,0xd8,0x8b,0xc1, +/*00007e80:*/0xe8,0x26,0x00,0x66,0x8b,0xf8,0x8b,0xc1,0x02,0xe3,0xe8,0x1c,0x00,0x66,0x8b,0xf0, +/*00007e90:*/0x2b,0xd1,0xfe,0xc6,0x8a,0xee,0x32,0xf6,0x42,0x8b,0x2e,0x4a,0x04,0xe8,0x92,0xff, +/*00007ea0:*/0x66,0x58,0x66,0x5a,0x66,0x5e,0x66,0x5f,0xc3,0x53,0x52,0x50,0x8a,0xc4,0xf6,0x26, +/*00007eb0:*/0x85,0x04,0x66,0x33,0xd2,0x8b,0x16,0x4a,0x04,0x66,0xf7,0xe2,0x66,0x33,0xd2,0x5a, +/*00007ec0:*/0x32,0xf6,0x66,0x03,0xc2,0x5a,0x5b,0xc3,0xc3,0xe8,0xbf,0xf9,0xa2,0x62,0x04,0x32, +/*00007ed0:*/0xe4,0x8b,0xf0,0xf7,0x26,0x4c,0x04,0xa3,0x4e,0x04,0x8b,0xc8,0x80,0x3e,0x49,0x04, +/*00007ee0:*/0x07,0x77,0x02,0xd1,0xf9,0xb4,0x0c,0xe8,0x79,0xfc,0xd1,0xe6,0x8b,0x84,0x50,0x04, +/*00007ef0:*/0xe8,0xc4,0xfc,0xe9,0x60,0x9c,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80, +/*00007f00:*/0xfc,0x07,0x77,0x13,0x74,0x05,0x80,0xfc,0x03,0x7f,0x06,0xe8,0x24,0xfa,0xe9,0x45, +/*00007f10:*/0x9c,0xe8,0x18,0xfb,0xe9,0x3f,0x9c,0x80,0xfc,0x13,0x7c,0x24,0x74,0x42,0x80,0xfc, +/*00007f20:*/0x6a,0x74,0x1d,0x80,0xfc,0x7a,0x74,0x18,0x80,0xfc,0x40,0x0f,0x82,0x27,0x9c,0x80, +/*00007f30:*/0xfc,0x5f,0x76,0x58,0x80,0xfc,0x60,0x0f,0x8c,0x1b,0x9c,0x80,0xfc,0x6f,0x76,0x46, +/*00007f40:*/0xe8,0x9b,0xf8,0x8a,0xd8,0x8b,0xc1,0xe8,0xd2,0xf8,0x8b,0x2e,0x4a,0x04,0x52,0xf6, +/*00007f50:*/0x26,0x85,0x04,0xf7,0xe5,0x8b,0xf7,0x03,0xf0,0x5a,0xe8,0xdd,0xf8,0xe9,0xf6,0x9b, +/*00007f60:*/0xe8,0x7b,0xf8,0x8a,0xd8,0x8b,0xc1,0xe8,0xb2,0xf8,0xc1,0xe7,0x03,0x52,0x8b,0x2e, +/*00007f70:*/0x4a,0x04,0xc1,0xe5,0x03,0xf7,0x26,0x85,0x04,0xf7,0xe5,0x8b,0xf7,0x03,0xf0,0x5a, +/*00007f80:*/0xe8,0xd5,0xfc,0xe9,0xd0,0x9b,0xe8,0xe8,0xfe,0xe9,0xca,0x9b,0xd0,0xe1,0xd0,0xe2, +/*00007f90:*/0xfe,0xc2,0xd1,0x26,0x4a,0x04,0xe8,0xd8,0xfe,0x33,0xc0,0x8e,0xd8,0xd1,0x2e,0x4a, +/*00007fa0:*/0x04,0xe9,0xb2,0x9b,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x07, +/*00007fb0:*/0x74,0x07,0x77,0x46,0x80,0xfc,0x03,0x7f,0x06,0xe8,0xa5,0xf9,0xe9,0x97,0x9b,0xe8, +/*00007fc0:*/0x81,0xfa,0xe9,0x91,0x9b,0xe8,0x16,0xf8,0x8a,0xd8,0x8a,0xc1,0x8a,0xe6,0xfe,0xc4, +/*00007fd0:*/0xe8,0x49,0xf8,0x2b,0x3e,0x4a,0x04,0xc1,0xe7,0x03,0x52,0xf7,0x26,0x85,0x04,0xf7, +/*00007fe0:*/0x26,0x4a,0x04,0xc1,0xe0,0x03,0x8b,0xf7,0x2b,0xf0,0x5a,0x8b,0x2e,0x4a,0x04,0xc1, +/*00007ff0:*/0xe5,0x03,0xf7,0xdd,0xe8,0x61,0xfc,0xe9,0x5c,0x9b,0x80,0xfc,0x13,0x7c,0x0c,0x74, +/*00008000:*/0xc4,0x80,0xfc,0x6a,0x74,0x05,0x80,0xfc,0x7a,0x74,0x00,0xe8,0xd0,0xf7,0x8a,0xd8, +/*00008010:*/0x8a,0xc1,0x8a,0xe6,0xfe,0xc4,0xe8,0x03,0xf8,0x52,0x8b,0x2e,0x4a,0x04,0xf7,0x26, +/*00008020:*/0x85,0x04,0xf7,0xe5,0x2b,0xfd,0x8b,0xf7,0x2b,0xf0,0x5a,0xf7,0xdd,0xe8,0x0a,0xf8, +/*00008030:*/0xe9,0x23,0x9b,0x2e,0x8e,0x1e,0x50,0x56,0x2e,0x8e,0x06,0x56,0x56,0x80,0x3e,0x49, +/*00008040:*/0x04,0x03,0x7e,0x11,0x80,0x3e,0x49,0x04,0x07,0x7c,0x1a,0x2e,0x8e,0x06,0x54,0x56, +/*00008050:*/0x74,0x03,0xe9,0xb3,0x00,0xe8,0x9b,0xfa,0x8b,0xd8,0x26,0x8b,0x07,0x8b,0xec,0x89, +/*00008060:*/0x46,0x1c,0xe9,0xf1,0x9a,0xa1,0x50,0x04,0xe8,0x07,0xfb,0x8b,0xf0,0xbb,0x08,0x00, +/*00008070:*/0x2b,0xe3,0x8b,0xec,0x80,0x3e,0x49,0x04,0x06,0x75,0x1f,0xb9,0x04,0x00,0x26,0x8a, +/*00008080:*/0x04,0x88,0x46,0x00,0x45,0x26,0x8a,0x84,0x00,0x20,0x88,0x46,0x00,0x45,0x83,0xc6, +/*00008090:*/0x50,0xe2,0xeb,0xb8,0x00,0x02,0xb2,0x80,0xeb,0x17,0xd1,0xe6,0xb9,0x04,0x00,0xe8, +/*000080a0:*/0xa6,0xfa,0x81,0xc6,0x00,0x20,0xe8,0x9f,0xfa,0x81,0xee,0xb0,0x1f,0xe2,0xf0,0xeb, +/*000080b0:*/0xe2,0x2b,0xeb,0xc4,0x3e,0x0c,0x01,0x32,0xf6,0x80,0xfb,0x0e,0x75,0x09,0x26,0x83, +/*000080c0:*/0x7d,0xfe,0x10,0x75,0x02,0xb6,0x80,0x16,0x1f,0x8b,0xf5,0x8b,0xcb,0xf6,0xc6,0x80, +/*000080d0:*/0x74,0x01,0x47,0x56,0x57,0xf3,0xa6,0x5f,0x5e,0x74,0x21,0xfe,0xc0,0x03,0xfb,0xf6, +/*000080e0:*/0xc6,0x80,0x74,0x01,0x47,0xfe,0xca,0x75,0xe2,0xfe,0xcc,0x74,0x0d,0xe8,0x9b,0xf7, +/*000080f0:*/0xc4,0x3e,0x7c,0x00,0xb0,0x80,0xb2,0x80,0xeb,0xcd,0x32,0xc0,0x8b,0xe5,0x03,0xe3, +/*00008100:*/0x8b,0xec,0x89,0x46,0x1c,0xe9,0x4e,0x9a,0x80,0x3e,0x49,0x04,0x13,0x7c,0x12,0x75, +/*00008110:*/0x02,0xeb,0x67,0x80,0x3e,0x49,0x04,0x6a,0x74,0x07,0x80,0x3e,0x49,0x04,0x7a,0x74, +/*00008120:*/0x00,0x2e,0x8e,0x06,0x52,0x56,0xe8,0x5b,0xfa,0x8b,0xf0,0x8b,0x1e,0x85,0x04,0x2b, +/*00008130:*/0xe3,0x8b,0xec,0xb8,0x05,0x08,0xb9,0x05,0x00,0xba,0xce,0x03,0x80,0x3e,0x49,0x04, +/*00008140:*/0x0f,0x72,0x1a,0xf6,0x06,0x87,0x04,0x60,0x75,0x13,0xb4,0x0a,0xf7,0xc6,0x01,0x00, +/*00008150:*/0x75,0x02,0xb4,0x05,0xb0,0x07,0xef,0xb8,0x05,0x18,0xb9,0x05,0x01,0xef,0x51,0x8b, +/*00008160:*/0xcb,0x26,0x8a,0x04,0xf6,0xd0,0x88,0x46,0x00,0x45,0x03,0x36,0x4a,0x04,0xe2,0xf1, +/*00008170:*/0x58,0xef,0xb8,0x00,0x01,0x32,0xd2,0xe9,0x37,0xff,0x2e,0x8e,0x06,0x52,0x56,0xa1, +/*00008180:*/0x50,0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0x32,0xe4,0xf7,0x26,0x4a,0x04,0xf7, +/*00008190:*/0x26,0x85,0x04,0x5a,0x03,0xc2,0x8b,0xf0,0x8b,0x1e,0x85,0x04,0x2b,0xe3,0x8b,0xec, +/*000081a0:*/0x53,0x8b,0x3e,0x4a,0x04,0x4f,0xc1,0xe7,0x03,0xc1,0xe6,0x03,0xb9,0x08,0x00,0x32, +/*000081b0:*/0xe4,0x26,0x8a,0x04,0xd0,0xe4,0x0a,0xc0,0x74,0x03,0x80,0xcc,0x01,0x46,0xe2,0xf1, +/*000081c0:*/0x88,0x66,0x00,0x45,0x03,0xf7,0x4b,0x75,0xe3,0x5b,0xb8,0x00,0x01,0x32,0xd2,0xe9, +/*000081d0:*/0xdf,0xfe,0x33,0xed,0xeb,0x03,0xbd,0x01,0x00,0x2e,0x8e,0x1e,0x50,0x56,0x2e,0x8e, +/*000081e0:*/0x06,0x56,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x03,0x7e,0x0f,0x2e,0x8e,0x06,0x54, +/*000081f0:*/0x56,0x80,0xfc,0x07,0x74,0x05,0x7c,0x41,0xe9,0xac,0x01,0x8a,0xe3,0x8b,0xf0,0x8a, +/*00008200:*/0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x87,0x50,0x04,0x8b,0xd0,0xa0,0x4a,0x04,0xf6,0xe4, +/*00008210:*/0x32,0xf6,0x03,0xc2,0x8b,0xf8,0xd1,0xe7,0x0a,0xdb,0x74,0x0b,0xd0,0xeb,0xa1,0x4c, +/*00008220:*/0x04,0x03,0xf8,0xfe,0xcb,0x75,0xfa,0x8b,0xc6,0x0b,0xed,0x75,0x05,0xf3,0xab,0xe9, +/*00008230:*/0x24,0x99,0xaa,0x47,0xe2,0xfc,0xe9,0x1d,0x99,0x50,0x2e,0x8e,0x06,0x56,0x56,0xa1, +/*00008240:*/0x50,0x04,0xe8,0x2d,0xf9,0x8b,0xf8,0xa0,0x50,0x04,0x8a,0x26,0x4a,0x04,0x8b,0xe8, +/*00008250:*/0x58,0xa8,0x80,0x74,0x08,0x24,0x7f,0xc5,0x36,0x7c,0x00,0xeb,0x04,0xc5,0x36,0x0c, +/*00008260:*/0x01,0x8a,0xfc,0x32,0xe4,0xc1,0xe0,0x03,0x03,0xf0,0x80,0xff,0x06,0x74,0x6d,0xd1, +/*00008270:*/0xe7,0x8a,0xf3,0xb0,0x55,0x80,0xe3,0x03,0xf6,0xe3,0x8a,0xd8,0x8a,0xf8,0x8b,0xc5, +/*00008280:*/0x50,0xb2,0x04,0xf6,0xc6,0x80,0x75,0x29,0xac,0xe8,0x94,0xf8,0x23,0xc3,0xab,0xac, +/*00008290:*/0xe8,0x8d,0xf8,0x23,0xc3,0x26,0x89,0x85,0xfe,0x1f,0x83,0xc7,0x4e,0xfe,0xca,0x75, +/*000082a0:*/0xe7,0x83,0xee,0x08,0x81,0xef,0x3e,0x01,0x58,0xe8,0x7a,0x00,0xe2,0xd2,0xe9,0xa5, +/*000082b0:*/0x98,0xac,0xe8,0x6b,0xf8,0x23,0xc3,0x26,0x31,0x05,0xac,0xe8,0x62,0xf8,0x23,0xc3, +/*000082c0:*/0x26,0x31,0x85,0x00,0x20,0x83,0xc7,0x50,0xfe,0xca,0x75,0xe5,0x83,0xee,0x08,0x81, +/*000082d0:*/0xef,0x3e,0x01,0x58,0xe8,0x4f,0x00,0xe2,0xa7,0xe9,0x7a,0x98,0x8b,0xc5,0x50,0xb2, +/*000082e0:*/0x04,0xf6,0xc3,0x80,0x74,0x21,0xac,0x26,0x30,0x05,0xac,0x26,0x30,0x85,0x00,0x20, +/*000082f0:*/0x83,0xc7,0x50,0xfe,0xca,0x7f,0xef,0x83,0xee,0x08,0x81,0xef,0x3f,0x01,0x58,0xe8, +/*00008300:*/0x24,0x00,0xe2,0xda,0xe9,0x4f,0x98,0xac,0xaa,0xac,0x26,0x88,0x85,0xff,0x1f,0x83, +/*00008310:*/0xc7,0x4f,0xfe,0xca,0x7f,0xf1,0x83,0xee,0x08,0x81,0xef,0x3f,0x01,0x58,0xe8,0x05, +/*00008320:*/0x00,0xe2,0xbb,0xe9,0x30,0x98,0xfe,0xc0,0x38,0xe0,0x72,0x06,0x32,0xc0,0x81,0xc7, +/*00008330:*/0xf0,0x00,0xc3,0x8a,0x16,0x85,0x04,0xf6,0xe2,0x8b,0xf0,0x32,0xf6,0x8b,0xea,0xa1, +/*00008340:*/0x50,0x04,0x86,0xd0,0x8b,0xfa,0xf6,0xe4,0xf7,0x26,0x4a,0x04,0x03,0xf8,0xc1,0xe7, +/*00008350:*/0x03,0x8b,0x16,0x4a,0x04,0x8a,0xe2,0x4a,0xc1,0xe2,0x03,0xa0,0x50,0x04,0x50,0xc5, +/*00008360:*/0x06,0x0c,0x01,0x03,0xf0,0x2e,0x8e,0x06,0x52,0x56,0x58,0x57,0x51,0x50,0x8b,0xcd, +/*00008370:*/0xb5,0x08,0xac,0x8a,0xe0,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa,0xfe,0xcd, +/*00008380:*/0x75,0xf3,0x03,0xfa,0xe2,0xea,0x58,0x59,0x5f,0x83,0xc7,0x08,0xfe,0xc0,0x38,0xe0, +/*00008390:*/0x72,0x0e,0x51,0x32,0xc0,0x8b,0xcd,0x49,0x03,0xfa,0x83,0xc7,0x08,0xe2,0xf9,0x59, +/*000083a0:*/0x2b,0xf5,0xe2,0xc7,0xe9,0xaf,0x97,0x80,0xfc,0x13,0x7c,0x27,0x74,0x85,0x80,0xfc, +/*000083b0:*/0x6a,0x74,0x20,0x80,0xfc,0x7a,0x74,0x1b,0x80,0xfc,0x40,0x0f,0x82,0x97,0x97,0x80, +/*000083c0:*/0xfc,0x5f,0x76,0x1a,0x80,0xfc,0x60,0x0f,0x82,0x8b,0x97,0x80,0xfc,0x6f,0x76,0x09, +/*000083d0:*/0xe9,0x83,0x97,0xe8,0x0d,0x00,0xe9,0x7d,0x97,0xe8,0xcc,0x00,0xeb,0xf8,0xe8,0x5f, +/*000083e0:*/0x01,0xeb,0xf3,0x80,0xfc,0x11,0x75,0x06,0x80,0xe3,0x80,0x80,0xcb,0x0f,0x50,0x53, +/*000083f0:*/0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x97,0x50,0x04,0x5b,0x2e,0x8e,0x06,0x52,0x56, +/*00008400:*/0xe8,0x81,0xf7,0x8b,0xf8,0x8b,0x2e,0x85,0x04,0x58,0x32,0xf6,0x52,0x8b,0x36,0x4a, +/*00008410:*/0x04,0x56,0x8a,0x26,0x85,0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc,0x0e,0x75,0x09,0x83, +/*00008420:*/0x7c,0xfe,0x10,0x75,0x03,0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0,0xb6,0x03,0xf6,0xc3, +/*00008430:*/0x80,0x75,0x6d,0xb2,0xc4,0xb8,0x02,0x0f,0xef,0x5a,0x58,0x50,0x52,0x4a,0x8a,0xe0, +/*00008440:*/0x57,0x51,0x51,0x57,0x8b,0xcd,0x32,0xc0,0xaa,0x03,0xfa,0xe2,0xfb,0x5f,0x47,0xfe, +/*00008450:*/0xc4,0x38,0xd4,0x76,0x0a,0x32,0xe4,0x8b,0xcd,0x49,0x03,0xfa,0x47,0xe2,0xfb,0x59, +/*00008460:*/0xe2,0xe0,0x59,0x5f,0xba,0xc4,0x03,0xb0,0x02,0x8a,0xe3,0xef,0x5b,0x4b,0x5a,0x51, +/*00008470:*/0x57,0x8b,0xcd,0xac,0x26,0x8a,0x25,0xaa,0x03,0xfb,0xe2,0xf7,0x5f,0x47,0x2b,0xf5, +/*00008480:*/0x42,0x3b,0xd3,0x76,0x0a,0x33,0xd2,0x8b,0xcd,0x49,0x03,0xfb,0x47,0xe2,0xfb,0x59, +/*00008490:*/0xe2,0xdd,0xba,0xce,0x03,0xb8,0x03,0x00,0xef,0xb2,0xc4,0xb8,0x02,0x0f,0xef,0xc3, +/*000084a0:*/0xb2,0xce,0xb8,0x03,0x18,0xef,0xeb,0xbc,0x50,0x2e,0x8e,0x06,0x52,0x56,0xa1,0x50, +/*000084b0:*/0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4,0x32,0xe4,0xf7,0x26,0x4a,0x04,0xf7,0x26, +/*000084c0:*/0x85,0x04,0x5f,0x03,0xf8,0x83,0xd2,0x00,0x8b,0xc7,0x8a,0xf4,0xc1,0xe7,0x03,0xc1, +/*000084d0:*/0xc2,0x03,0x8b,0x2e,0x85,0x04,0x8a,0xf2,0x8a,0x16,0x4a,0x04,0x58,0x8a,0x26,0x85, +/*000084e0:*/0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc,0x0e,0x75,0x09,0x83,0x7c,0xfe,0x10,0x75,0x03, +/*000084f0:*/0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0,0xb0,0xff,0x52,0x57,0x51,0x8b,0xcd,0x52,0x51, +/*00008500:*/0x57,0x50,0x8a,0xee,0xd0,0xe5,0x38,0xc5,0x74,0x07,0x58,0x8a,0xc5,0x50,0xe8,0x4a, +/*00008510:*/0x9c,0xb9,0x08,0x00,0x8a,0x24,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa,0xe2, +/*00008520:*/0xf5,0x58,0x5f,0x59,0x46,0x32,0xf6,0xc1,0xe2,0x03,0x03,0xfa,0x5a,0x80,0xd6,0x00, +/*00008530:*/0xe2,0xcc,0x59,0x5f,0x5a,0x83,0xc7,0x08,0x80,0xd6,0x00,0x2b,0xf5,0xe2,0xba,0xc3, +/*00008540:*/0x50,0x2e,0x8e,0x06,0x52,0x56,0xa1,0x50,0x04,0x8b,0xd0,0x32,0xf6,0x52,0x8a,0xc4, +/*00008550:*/0x32,0xe4,0xf7,0x26,0x4a,0x04,0xf7,0x26,0x85,0x04,0x5f,0x03,0xf8,0x83,0xd2,0x00, +/*00008560:*/0x8b,0xc7,0x8a,0xf4,0xc1,0xe7,0x04,0xc1,0xc2,0x04,0x8b,0x2e,0x85,0x04,0x8a,0xf2, +/*00008570:*/0x8a,0x16,0x4a,0x04,0x58,0x8a,0x26,0x85,0x04,0xc5,0x36,0x0c,0x01,0x80,0xfc,0x0e, +/*00008580:*/0x75,0x09,0x83,0x7c,0xfe,0x10,0x75,0x03,0xb4,0x10,0x46,0xf6,0xe4,0x03,0xf0,0xb0, +/*00008590:*/0xff,0x52,0x57,0x51,0x8b,0xcd,0x52,0x51,0x57,0x50,0x8a,0xee,0xd0,0xe5,0x38,0xc5, +/*000085a0:*/0x74,0x07,0x58,0x8a,0xc5,0x50,0xe8,0xb2,0x9b,0xb9,0x08,0x00,0x8a,0x24,0x32,0xc0, +/*000085b0:*/0xaa,0x8a,0xc7,0xd0,0xe4,0x73,0x02,0x8a,0xc3,0xaa,0xe2,0xf2,0x58,0x5f,0x59,0x46, +/*000085c0:*/0x32,0xf6,0xc1,0xe2,0x04,0x03,0xfa,0x5a,0x80,0xd6,0x00,0xe2,0xc9,0x59,0x5f,0x5a, +/*000085d0:*/0x83,0xc7,0x10,0x80,0xd6,0x00,0x2b,0xf5,0xe2,0xb7,0xc3,0xe8,0xad,0xf2,0x80,0x3e, +/*000085e0:*/0x63,0x04,0xb4,0x74,0x0b,0xba,0xcc,0x03,0xec,0xa8,0x01,0x75,0x06,0xe9,0x5f,0x95, +/*000085f0:*/0xe9,0x63,0x95,0xe8,0x18,0xf6,0x0a,0xff,0x75,0x1c,0x8a,0xe3,0x80,0xe4,0x1f,0x80, +/*00008600:*/0x26,0x66,0x04,0xe0,0x08,0x26,0x66,0x04,0xe8,0x33,0x00,0x8a,0x1e,0x66,0x04,0x80, +/*00008610:*/0xe3,0x20,0xb1,0x05,0xd2,0xeb,0x80,0x3e,0x49,0x04,0x03,0x7e,0x1b,0xa0,0x66,0x04, +/*00008620:*/0x24,0xdf,0x80,0xe3,0x01,0x74,0x02,0x0c,0x20,0xa2,0x66,0x04,0x24,0x10,0x0c,0x02, +/*00008630:*/0x0a,0xd8,0xe8,0x57,0x00,0xe9,0x1e,0x95,0xe8,0xc1,0xf5,0xe9,0x18,0x95,0x53,0x50, +/*00008640:*/0x80,0xe3,0x0f,0x8a,0xfb,0xd0,0xe3,0x81,0xe3,0x10,0x07,0x0a,0xdf,0x80,0x3e,0x49, +/*00008650:*/0x04,0x04,0x7c,0x0e,0xb4,0x00,0x8a,0xc3,0xe8,0x88,0xc0,0x0b,0xed,0x74,0x03,0x26, +/*00008660:*/0x88,0x1d,0x8a,0xc3,0xe8,0x0b,0x00,0x0b,0xed,0x74,0x04,0x26,0x88,0x5d,0x10,0x58, +/*00008670:*/0x5b,0xc3,0x8a,0xe0,0x1e,0xe8,0x13,0xf2,0x80,0x3e,0x49,0x04,0x13,0x1f,0x7f,0x08, +/*00008680:*/0x8a,0xc4,0xb4,0x11,0xe8,0x5c,0xc0,0xc3,0xe8,0x71,0xf5,0xc3,0x9c,0xfa,0xe8,0xe4, +/*00008690:*/0x05,0xb2,0xc0,0xb9,0x03,0x00,0xb4,0x01,0x8a,0xc4,0xee,0x8a,0xc3,0xee,0x0b,0xed, +/*000086a0:*/0x74,0x04,0x47,0x26,0x88,0x1d,0xfe,0xc4,0x80,0xc3,0x02,0xe2,0xeb,0xb0,0x20,0xee, +/*000086b0:*/0x9d,0xc3,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x07,0x77,0x0d, +/*000086c0:*/0x74,0x08,0x80,0xfc,0x03,0x7e,0x03,0xe8,0x01,0xf3,0xe9,0x89,0x94,0x80,0xfc,0x13, +/*000086d0:*/0x7c,0x0c,0x74,0x57,0x80,0xfc,0x6a,0x74,0x05,0x80,0xfc,0x7a,0x74,0x00,0x8a,0xd8, +/*000086e0:*/0xe8,0xf1,0xf4,0xba,0xce,0x03,0xb0,0x08,0xef,0x2e,0x8e,0x1e,0x52,0x56,0xf6,0xc3, +/*000086f0:*/0x80,0x75,0x1e,0xb2,0xc4,0xb8,0x02,0xff,0xef,0x8a,0x25,0xc6,0x05,0x00,0x8a,0xe3, +/*00008700:*/0xef,0x8a,0x25,0xb4,0xff,0x88,0x25,0xef,0xb2,0xce,0xb8,0x08,0xff,0xef,0xe9,0x45, +/*00008710:*/0x94,0xb8,0x03,0x18,0xef,0xb2,0xc4,0xb0,0x02,0x8a,0xe3,0xef,0x8a,0x25,0xb4,0xff, +/*00008720:*/0x88,0x25,0xef,0xb2,0xce,0xb8,0x03,0x00,0xef,0xeb,0xdf,0x50,0x2e,0x8e,0x06,0x52, +/*00008730:*/0x56,0xa1,0x4a,0x04,0xc1,0xe0,0x03,0xf7,0xe2,0x03,0xc1,0x8b,0xf8,0x58,0x26,0x88, +/*00008740:*/0x05,0xe9,0x12,0x94,0x2e,0x8e,0x1e,0x50,0x56,0x8a,0x26,0x49,0x04,0x80,0xfc,0x07, +/*00008750:*/0x77,0x12,0x74,0x0d,0x80,0xfc,0x03,0x7e,0x08,0xe8,0x91,0xf2,0x8b,0xec,0x89,0x46, +/*00008760:*/0x1c,0xe9,0xf2,0x93,0x80,0xfc,0x13,0x7c,0x0c,0x74,0x34,0x80,0xfc,0x6a,0x74,0x05, +/*00008770:*/0x80,0xfc,0x7a,0x74,0x00,0xe8,0x5c,0xf4,0x8a,0xcc,0x2e,0x8e,0x1e,0x52,0x56,0xba, +/*00008780:*/0xce,0x03,0x32,0xff,0xb8,0x04,0x03,0xef,0xd0,0xe7,0x8a,0x1d,0x22,0xd9,0x74,0x03, +/*00008790:*/0x80,0xcf,0x01,0xfe,0xcc,0x7d,0xf0,0x8b,0xec,0x88,0x7e,0x1c,0xe9,0xb7,0x93,0xa1, +/*000087a0:*/0x4a,0x04,0xc1,0xe0,0x03,0xf7,0xe2,0x03,0xc1,0x8b,0xf8,0x2e,0x8e,0x1e,0x52,0x56, +/*000087b0:*/0x8a,0x05,0x8b,0xec,0x88,0x46,0x1c,0xe9,0x9c,0x93,0x2e,0x8e,0x1e,0x50,0x56,0x8a, +/*000087c0:*/0x3e,0x62,0x04,0x8a,0xcf,0xd0,0xe1,0x32,0xed,0xbe,0x50,0x04,0x03,0xf1,0x8b,0x14, +/*000087d0:*/0x8a,0x0e,0x49,0x04,0x3c,0x0d,0x76,0x4c,0x2e,0x8e,0x06,0x56,0x56,0x80,0xf9,0x03, +/*000087e0:*/0x7f,0x35,0x8a,0x1e,0x4a,0x04,0x8a,0xf8,0x8a,0xc6,0xf6,0xe3,0x8a,0xca,0x03,0xc8, +/*000087f0:*/0xd1,0xe1,0x03,0x0e,0x4e,0x04,0x8b,0xf9,0x8a,0xc7,0xaa,0xd1,0xe9,0x41,0xfe,0xc2, +/*00008800:*/0x38,0xda,0x73,0x5a,0x89,0x14,0x8b,0x16,0x63,0x04,0xb0,0x0e,0x8a,0xe5,0xef,0x8a, +/*00008810:*/0xe1,0xfe,0xc0,0xef,0xe9,0x3f,0x93,0x2e,0x8e,0x06,0x54,0x56,0x80,0xf9,0x07,0x74, +/*00008820:*/0xc1,0xe9,0x84,0x00,0x75,0x04,0x32,0xd2,0xeb,0x0f,0x3c,0x0a,0x75,0x1a,0x3a,0x36, +/*00008830:*/0x84,0x04,0x75,0x03,0xe9,0x96,0x00,0xfe,0xc6,0x89,0x14,0x80,0xf9,0x07,0x7f,0x05, +/*00008840:*/0x8b,0xc2,0xe8,0x72,0xf3,0xe9,0x0e,0x93,0x3c,0x07,0x75,0x06,0xe8,0x66,0xf0,0xe9, +/*00008850:*/0x04,0x93,0x3c,0x08,0x75,0x82,0x0a,0xd2,0x74,0xdf,0xfe,0xca,0xeb,0xdb,0x32,0xff, +/*00008860:*/0x32,0xd2,0x2b,0xcb,0x3a,0x36,0x84,0x04,0x74,0x06,0xfe,0xc6,0x03,0xcb,0xeb,0x94, +/*00008870:*/0x89,0x14,0x8b,0x16,0x63,0x04,0xb0,0x0e,0x8a,0xe5,0xef,0x8a,0xe1,0xfe,0xc0,0xef, +/*00008880:*/0x2b,0xfb,0x2b,0xfb,0x26,0x8a,0x65,0x02,0x50,0x8b,0x3e,0x4e,0x04,0x8b,0xf3,0xd1, +/*00008890:*/0xe6,0x03,0xf7,0xa0,0x84,0x04,0xf6,0xe3,0x8b,0xc8,0x06,0x1f,0xf3,0xa5,0x8b,0xcb, +/*000088a0:*/0x58,0xb0,0x20,0xf3,0xab,0xe9,0xae,0x92,0xb9,0x01,0x00,0xb4,0x0a,0xe8,0x58,0x92, +/*000088b0:*/0xfe,0xc2,0x3a,0x16,0x4a,0x04,0x74,0x05,0x89,0x14,0xe9,0x99,0x92,0x32,0xff,0x32, +/*000088c0:*/0xd2,0x89,0x14,0x3a,0x36,0x84,0x04,0x74,0x2e,0xfe,0xc6,0xeb,0xeb,0x89,0x14,0x2e, +/*000088d0:*/0x8e,0x06,0x56,0x56,0x80,0xf9,0x03,0x7e,0x0e,0x2e,0x8e,0x06,0x54,0x56,0x80,0xf9, +/*000088e0:*/0x07,0x74,0x04,0x32,0xff,0xeb,0x10,0x8b,0xc2,0xe8,0xcb,0xf2,0x8b,0xf9,0xd1,0xe7, +/*000088f0:*/0x4f,0x8b,0x1e,0x4a,0x04,0xeb,0x8d,0x33,0xc9,0x8a,0x36,0x84,0x04,0x8a,0x16,0x4a, +/*00008900:*/0x04,0xfe,0xca,0xb0,0x01,0xe9,0xf3,0xf5,0xe8,0x80,0xef,0xf6,0x06,0x87,0x04,0x08, +/*00008910:*/0x75,0x0c,0xe8,0x99,0xf3,0x8b,0xec,0xc6,0x46,0x1d,0x00,0xe9,0x38,0x92,0xe9,0x2e, +/*00008920:*/0x92,0xe8,0x67,0xef,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x89,0x97,0x50,0x04,0xd0,0xeb, +/*00008930:*/0x38,0x1e,0x62,0x04,0x75,0x05,0x8b,0xc2,0xe8,0x7c,0xf2,0xe9,0x18,0x92,0xe8,0x4a, +/*00008940:*/0xef,0x8a,0xdf,0x32,0xff,0xd1,0xe3,0x8b,0x97,0x50,0x04,0x8b,0x0e,0x60,0x04,0x8b, +/*00008950:*/0xec,0x89,0x4e,0x18,0x89,0x56,0x14,0xe9,0xfc,0x91,0xe8,0x2e,0xef,0xa0,0x87,0x04, +/*00008960:*/0x24,0x80,0x0a,0x06,0x49,0x04,0x8a,0x26,0x4a,0x04,0xf6,0x06,0x87,0x04,0x08,0x75, +/*00008970:*/0x28,0x80,0x3e,0x49,0x04,0x07,0x7f,0x21,0x51,0x8a,0xcc,0x8a,0x2e,0x84,0x04,0xbe, +/*00008980:*/0xae,0x89,0x81,0xfe,0xbd,0x89,0x74,0x10,0x2e,0x3b,0x0c,0x74,0x05,0x83,0xc6,0x03, +/*00008990:*/0xeb,0xf0,0x24,0x80,0x2e,0x0a,0x44,0x02,0x59,0x8a,0x3e,0x62,0x04,0x8b,0xec,0x89, +/*000089a0:*/0x46,0x1c,0x89,0x5e,0x10,0x89,0x4e,0x18,0x89,0x56,0x14,0xe9,0xa8,0x91,0x84,0x18, +/*000089b0:*/0x23,0x84,0x2b,0x33,0x84,0x2a,0x32,0x64,0x18,0x21,0x64,0x1d,0x22,0xe8,0xcb,0xee, +/*000089c0:*/0x3c,0x04,0x7f,0x1d,0x50,0x52,0xba,0xcc,0x03,0xec,0xa8,0x01,0x5a,0x58,0x74,0x0a, +/*000089d0:*/0x80,0x3e,0x63,0x04,0xd4,0x74,0x0a,0xe9,0x7c,0x91,0x80,0x3e,0x63,0x04,0xb4,0x75, +/*000089e0:*/0xf6,0x3c,0x1c,0x73,0xf2,0x32,0xe4,0x8b,0xe8,0xd1,0xe5,0x2e,0xff,0xa6,0xf0,0x89, +/*000089f0:*/0x28,0x8a,0x4a,0x8a,0x5f,0x8a,0x94,0x8a,0xd7,0x89,0xd7,0x89,0xd7,0x89,0xb9,0x8a, +/*00008a00:*/0xd1,0x8a,0xd5,0x8a,0xd7,0x89,0xd7,0x89,0xd7,0x89,0xd7,0x89,0xd7,0x89,0xd7,0x89, +/*00008a10:*/0x03,0x8b,0xd7,0x89,0x09,0x8b,0x26,0x8b,0xd7,0x89,0x67,0x8b,0xd7,0x89,0x77,0x8b, +/*00008a20:*/0x94,0x8b,0x9d,0x8b,0xab,0x8b,0xcf,0x8b,0x80,0x3e,0x49,0x04,0x13,0x74,0x15,0xe8, +/*00008a30:*/0xdc,0xf1,0x8b,0xc3,0x86,0xe0,0xe8,0xaa,0xbc,0x0b,0xed,0x74,0x07,0x8a,0xc7,0x32, +/*00008a40:*/0xff,0x26,0x88,0x01,0xe8,0xb0,0xf1,0xe9,0x0c,0x91,0xe8,0xb8,0x94,0xe8,0xbe,0xf1, +/*00008a50:*/0x8a,0xc7,0xe8,0x1d,0xfc,0x0b,0xed,0x74,0xeb,0x26,0x88,0x7d,0x11,0xeb,0xe5,0x80, +/*00008a60:*/0x3e,0x49,0x04,0x13,0x74,0xde,0x06,0xe8,0xa4,0xf1,0x1f,0x0b,0xed,0x74,0x07,0x8b, +/*00008a70:*/0xf2,0xb9,0x11,0x00,0xf3,0xa4,0x8b,0xf2,0xe8,0x09,0x02,0x32,0xe4,0xb9,0x10,0x00, +/*00008a80:*/0xb2,0xc0,0x9c,0xfa,0x8a,0xc4,0xee,0xac,0xee,0x9d,0xfe,0xc4,0xe2,0xf4,0xac,0xe8, +/*00008a90:*/0xe0,0xfb,0xeb,0xb0,0x80,0xfb,0x01,0x77,0xab,0xe8,0x5b,0xf1,0xb2,0xc0,0xb0,0x30, +/*00008aa0:*/0xe8,0xde,0xed,0x24,0xf7,0x80,0x26,0x65,0x04,0xdf,0x80,0xfb,0x00,0x74,0x07,0x0c, +/*00008ab0:*/0x08,0x80,0x0e,0x65,0x04,0x20,0xee,0xeb,0x8b,0xe8,0xc8,0x01,0x8a,0xc3,0xb2,0xc0, +/*00008ac0:*/0xe8,0xbe,0xed,0x8b,0xc8,0xee,0xb0,0x20,0xee,0x8b,0xec,0x88,0x4e,0x11,0xe9,0x73, +/*00008ad0:*/0xff,0xb3,0x11,0xeb,0xe4,0x8b,0xfa,0xe8,0x1d,0xf1,0xb9,0x10,0x00,0x32,0xe4,0xb2, +/*00008ae0:*/0xc0,0x8a,0xc4,0x9c,0xfa,0xee,0x42,0xec,0x26,0x88,0x05,0xfe,0xc4,0x4a,0xee,0x9d, +/*00008af0:*/0x47,0xe2,0xee,0x9c,0xfa,0xb0,0x11,0xee,0x42,0xec,0x9d,0x26,0x88,0x05,0xe8,0xfb, +/*00008b00:*/0xf0,0xeb,0x5e,0xe8,0xde,0x00,0xe9,0x4d,0x90,0x8b,0xfa,0x51,0x8b,0xc3,0x26,0x8a, +/*00008b10:*/0x35,0x26,0x8a,0x6d,0x01,0x26,0x8a,0x4d,0x02,0xe8,0xd8,0x00,0x83,0xc7,0x03,0x43, +/*00008b20:*/0x59,0xe2,0xe8,0xe9,0x30,0x90,0x0a,0xdb,0x75,0x1a,0xe8,0xca,0xf0,0xb2,0xc0,0xb0, +/*00008b30:*/0x30,0xe8,0x4d,0xed,0x24,0x7f,0xf6,0xc7,0x01,0x74,0x02,0x0c,0x80,0xb4,0x30,0xe8, +/*00008b40:*/0xa1,0xbb,0xeb,0x1d,0xfe,0xcb,0x75,0x1c,0xe8,0xac,0xf0,0xb2,0xc0,0xb0,0x30,0xe8, +/*00008b50:*/0x2f,0xed,0xee,0xa8,0x80,0x75,0x03,0xc0,0xe7,0x02,0xb4,0x34,0x8a,0xc7,0xe8,0x82, +/*00008b60:*/0xbb,0xe8,0x93,0xf0,0xe9,0xef,0x8f,0x8a,0xc3,0xe8,0xe5,0x00,0x8b,0xec,0x89,0x4e, +/*00008b70:*/0x18,0x88,0x76,0x15,0xe9,0xdf,0x8f,0x8b,0xfa,0x51,0x8b,0xc3,0xe8,0xd5,0x00,0x26, +/*00008b80:*/0x88,0x35,0x26,0x88,0x6d,0x01,0x26,0x88,0x4d,0x02,0x83,0xc7,0x03,0x43,0x59,0xe2, +/*00008b90:*/0xe8,0xe9,0xc2,0x8f,0xba,0xc6,0x03,0x8a,0xc3,0xee,0xe9,0xb9,0x8f,0xba,0xc6,0x03, +/*00008ba0:*/0xec,0x32,0xe4,0x8b,0xec,0x89,0x46,0x10,0xe9,0xab,0x8f,0xe8,0x49,0xf0,0xb2,0xc0, +/*00008bb0:*/0xb0,0x34,0xe8,0xcc,0xec,0x8a,0xf8,0xee,0xb0,0x30,0xe8,0xc4,0xec,0xb3,0x01,0xa8, +/*00008bc0:*/0x80,0x75,0x05,0xb3,0x00,0xc0,0xef,0x02,0x8b,0xec,0x89,0x5e,0x10,0xeb,0x92,0x51, +/*00008bd0:*/0x8b,0xc3,0xe8,0x7f,0x00,0xe8,0x2c,0x00,0x8a,0xc3,0xe8,0x54,0x00,0x43,0x59,0xe2, +/*00008be0:*/0xee,0xe9,0x72,0x8f,0xf6,0x06,0x89,0x04,0x02,0x74,0x03,0xe8,0x16,0x00,0x8a,0xc3, +/*00008bf0:*/0xe8,0x39,0x00,0xc3,0xf6,0x06,0x89,0x04,0x02,0x74,0x03,0xe8,0x06,0x00,0x8a,0xc3, +/*00008c00:*/0xe8,0x2e,0x00,0xc3,0x50,0xb0,0x1e,0xf6,0xe6,0x50,0xb0,0x3b,0xf6,0xe5,0x50,0xb0, +/*00008c10:*/0x0b,0xf6,0xe1,0x59,0x03,0xc1,0x59,0x03,0xc1,0xb1,0x64,0xf6,0xf1,0x80,0xfc,0x32, +/*00008c20:*/0x7c,0x02,0xfe,0xc0,0x8a,0xf0,0x8a,0xe8,0x8a,0xc8,0x58,0xc3,0x52,0xe8,0x54,0x00, +/*00008c30:*/0x5a,0x53,0x8b,0xda,0xba,0xc8,0x03,0x9c,0xfa,0xe8,0xca,0x98,0x42,0x8a,0xc7,0xe8, +/*00008c40:*/0xc4,0x98,0x8a,0xc5,0xe8,0xbf,0x98,0x8a,0xc1,0xe8,0x03,0x00,0x9d,0x5b,0xc3,0xee, +/*00008c50:*/0xc3,0xe8,0x30,0x00,0x53,0x9c,0xfa,0xba,0xc7,0x03,0xe8,0xf2,0xff,0x42,0x42,0xec, +/*00008c60:*/0x8a,0xf8,0xeb,0x00,0xeb,0x00,0xec,0x8a,0xe8,0xeb,0x00,0xeb,0x00,0xec,0x8a,0xc8, +/*00008c70:*/0x8a,0xf7,0x9d,0x5b,0xc3,0x50,0x51,0xe8,0x7d,0xef,0xb9,0xff,0x7f,0xec,0xa8,0x08, +/*00008c80:*/0xe0,0xfb,0xeb,0x05,0x50,0x51,0xe8,0x6e,0xef,0xb9,0xff,0x7f,0xec,0xa8,0x08,0xe1, +/*00008c90:*/0xfb,0x59,0x58,0xc3,0xe8,0xf4,0xeb,0x8b,0xf8,0x24,0x0f,0x81,0xe7,0xf0,0x00,0xc1, +/*00008ca0:*/0xef,0x03,0x83,0xff,0x06,0x7f,0x18,0x2e,0xff,0xa5,0xac,0x8c,0xb4,0x8c,0xcd,0x8c, +/*00008cb0:*/0x6d,0x8d,0xcf,0x8d,0x3c,0x03,0x74,0x0a,0x3c,0x04,0x7f,0x03,0xe8,0xe0,0x01,0xe9, +/*00008cc0:*/0x94,0x8e,0xba,0xc4,0x03,0xb0,0x03,0x8a,0xe3,0xef,0xe9,0x89,0x8e,0x3c,0x04,0x77, +/*00008cd0:*/0xee,0x50,0x53,0x50,0x52,0x8b,0x16,0x63,0x04,0xb0,0x07,0xe8,0xa3,0xeb,0x8a,0xe0, +/*00008ce0:*/0xd0,0xec,0x80,0xe4,0x01,0xa8,0x40,0x74,0x03,0x80,0xcc,0x02,0xb0,0x12,0xe8,0x90, +/*00008cf0:*/0xeb,0x40,0xa3,0x85,0x04,0xb0,0x09,0xe8,0x87,0xeb,0xa8,0x80,0x74,0x04,0xd1,0x2e, +/*00008d00:*/0x85,0x04,0xa1,0x85,0x04,0x8b,0xd0,0x3d,0xf4,0x01,0x73,0x1b,0xba,0xe0,0x01,0x3d, +/*00008d10:*/0xc2,0x01,0x73,0x13,0xba,0x90,0x01,0x3d,0x7c,0x01,0x73,0x0b,0xba,0x5e,0x01,0x3d, +/*00008d20:*/0x4a,0x01,0x73,0x03,0xba,0xc8,0x00,0x89,0x16,0x85,0x04,0x5a,0x58,0xc6,0x06,0x84, +/*00008d30:*/0x04,0xff,0xe8,0x6a,0x01,0x5b,0x58,0x8a,0xdf,0x32,0xff,0x0a,0xc0,0x74,0x0e,0xb3, +/*00008d40:*/0x0e,0x3c,0x01,0x74,0x08,0xb3,0x08,0x3c,0x02,0x74,0x02,0xb3,0x10,0x8a,0xcb,0x8a, +/*00008d50:*/0xe9,0x81,0xe9,0x01,0x02,0x80,0xf9,0x08,0x7e,0x04,0x81,0xe9,0x01,0x01,0x87,0x1e, +/*00008d60:*/0x85,0x04,0x53,0xe8,0x48,0xef,0x5b,0xe8,0x9c,0x02,0xe9,0xe9,0x8d,0x0a,0xc0,0x74, +/*00008d70:*/0x13,0xfe,0xc8,0x74,0x1e,0xfe,0xc8,0x74,0x3e,0xfe,0xc8,0x74,0x42,0xfe,0xc8,0x74, +/*00008d80:*/0x46,0xe9,0xd2,0x8d,0x89,0x2e,0x7c,0x00,0x8c,0x06,0x7e,0x00,0xe9,0xc7,0x8d,0x8c, +/*00008d90:*/0xc8,0x8e,0xc0,0xfe,0xca,0x0a,0xdb,0x74,0x07,0x32,0xff,0x2e,0x8a,0x97,0xb3,0x8d, +/*00008da0:*/0x89,0x0e,0x85,0x04,0x88,0x16,0x84,0x04,0x89,0x2e,0x0c,0x01,0x8c,0x06,0x0e,0x01, +/*00008db0:*/0xe9,0xa3,0x8d,0x00,0x0d,0x18,0x2a,0xe8,0x49,0x03,0xb9,0x0e,0x00,0xeb,0xd4,0xbd, +/*00008dc0:*/0x0a,0x25,0xb9,0x08,0x00,0xeb,0xc8,0xbd,0x1d,0x2d,0xb9,0x10,0x00,0xeb,0xc0,0x0a, +/*00008dd0:*/0xc0,0x75,0xb9,0x8b,0x0e,0x85,0x04,0x8a,0x16,0x84,0x04,0x80,0xff,0x07,0x77,0x35, +/*00008de0:*/0x80,0xff,0x01,0x77,0x10,0x0a,0xff,0x75,0x06,0xc4,0x2e,0x7c,0x00,0xeb,0x26,0xc4, +/*00008df0:*/0x2e,0x0c,0x01,0xeb,0x20,0x80,0xff,0x02,0x75,0x0b,0x8c,0xcd,0x8e,0xc5,0x2e,0x8b, +/*00008e00:*/0x2e,0xfc,0x3d,0xeb,0x10,0x0e,0x07,0x8a,0xdf,0x32,0xff,0x80,0xeb,0x02,0xd1,0xe3, +/*00008e10:*/0x2e,0x8b,0xaf,0x28,0x8e,0x8b,0xc5,0x8b,0xec,0x89,0x4e,0x18,0x89,0x56,0x14,0x89, +/*00008e20:*/0x46,0x08,0x8c,0x46,0x20,0xe9,0x2e,0x8d,0x1d,0x2d,0x0a,0x25,0x0a,0x29,0x0a,0x2d, +/*00008e30:*/0x1d,0x2d,0x1d,0x3d,0x53,0x06,0x8a,0x26,0x49,0x04,0xe8,0x03,0x00,0x07,0x5b,0xc3, +/*00008e40:*/0xe8,0xca,0x90,0x26,0x8a,0x47,0x02,0x26,0x8a,0x67,0x33,0xf6,0xc4,0x01,0x74,0x21, +/*00008e50:*/0xbd,0x1d,0x2d,0x3c,0x10,0x7d,0x0e,0xe8,0xa9,0x02,0x8c,0x06,0x0e,0x01,0x3c,0x0e, +/*00008e60:*/0x7d,0x07,0xbd,0x0a,0x25,0x8c,0x0e,0x0e,0x01,0x89,0x2e,0x0c,0x01,0xe8,0x17,0x01, +/*00008e70:*/0xc3,0xb4,0x84,0x3c,0x10,0x7d,0x13,0xb4,0x81,0x3c,0x0e,0x74,0x0d,0x7f,0x15,0xb4, +/*00008e80:*/0x02,0x3c,0x08,0x74,0x05,0x80,0xcc,0x80,0xeb,0x0a,0x26,0xf6,0x47,0x05,0x01,0x74, +/*00008e90:*/0x03,0x80,0xe4,0x7f,0x86,0xc4,0x32,0xdb,0xe8,0x04,0x00,0xe8,0x02,0x02,0xc3,0x8b, +/*00008ea0:*/0xf8,0x8b,0xf2,0xba,0xce,0x03,0xec,0xb8,0x05,0x00,0xef,0xb8,0x06,0x04,0xef,0xb2, +/*00008eb0:*/0xc4,0xec,0xb8,0x02,0x04,0xef,0xb8,0x04,0x07,0xef,0x8b,0xd6,0x8b,0xc7,0x50,0x24, +/*00008ec0:*/0x7f,0x0a,0xc0,0x74,0x22,0x0e,0x07,0x33,0xd2,0xb9,0x00,0x01,0x3c,0x04,0x75,0x07, +/*00008ed0:*/0xb7,0x10,0xbd,0x1d,0x2d,0xeb,0x10,0xfe,0xc8,0x75,0x07,0xb7,0x0e,0xe8,0x23,0x02, +/*00008ee0:*/0xeb,0x05,0xb7,0x08,0xbd,0x0a,0x25,0xe8,0x37,0x00,0x58,0xa8,0x80,0x74,0x0c,0x50, +/*00008ef0:*/0xe8,0xe4,0xd1,0xa8,0x89,0x58,0x75,0x03,0xe8,0x74,0x01,0xba,0xc4,0x03,0xb8,0x02, +/*00008f00:*/0x03,0xef,0xb8,0x04,0x02,0xef,0xb2,0xcc,0xec,0xa8,0x01,0xb8,0x06,0x0e,0x75,0x02, +/*00008f10:*/0xb4,0x0a,0xb2,0xce,0x50,0xec,0x58,0xef,0xb8,0x04,0x00,0xef,0xb8,0x05,0x10,0xef, +/*00008f20:*/0xc3,0xfc,0x0b,0xc9,0x75,0x01,0xc3,0x80,0xff,0x0e,0x75,0x0a,0x26,0x83,0x7e,0xfe, +/*00008f30:*/0x10,0x75,0x03,0x80,0xcd,0x80,0x1e,0x06,0x1f,0x2e,0x8e,0x06,0x52,0x56,0x8b,0xfa, +/*00008f40:*/0xc1,0xe7,0x05,0xb0,0x40,0x53,0x80,0xe3,0x03,0xf6,0xe3,0x5b,0xf6,0xc3,0x04,0x74, +/*00008f50:*/0x02,0x04,0x20,0x86,0xe0,0x8b,0xd0,0x03,0xfa,0x8b,0xf5,0xe3,0x28,0x32,0xc0,0x86, +/*00008f60:*/0xfb,0x32,0xff,0x51,0xf6,0xc5,0x80,0x74,0x01,0x46,0x8b,0xcb,0xf3,0xa4,0x83,0xfb, +/*00008f70:*/0x20,0x74,0x07,0xb9,0x20,0x00,0x2b,0xcb,0xf3,0xaa,0x59,0xf6,0xc5,0x80,0x74,0x01, +/*00008f80:*/0x46,0xfe,0xc9,0x75,0xde,0x1f,0xc3,0x8a,0x26,0x49,0x04,0x50,0x06,0x57,0xc4,0x3e, +/*00008f90:*/0xa8,0x04,0x26,0xc4,0x7d,0x0c,0x8c,0xc5,0x0b,0xef,0x74,0x30,0x8b,0xef,0x83,0xc7, +/*00008fa0:*/0x07,0x26,0x8a,0x05,0x3c,0xff,0x74,0x24,0x38,0xe0,0x74,0x03,0x47,0xeb,0xf2,0x8b, +/*00008fb0:*/0xfd,0x26,0x8a,0x05,0xfe,0xc8,0xa2,0x84,0x04,0x26,0x8b,0x45,0x01,0xa3,0x85,0x04, +/*00008fc0:*/0x26,0xc4,0x7d,0x03,0x89,0x3e,0x0c,0x01,0x8c,0x06,0x0e,0x01,0x5f,0x07,0x58,0xc3, +/*00008fd0:*/0x26,0xf6,0x47,0x33,0x01,0x74,0x01,0xc3,0xc4,0x1e,0xa8,0x04,0x26,0xc4,0x5f,0x08, +/*00008fe0:*/0x8c,0xc0,0x0b,0xc3,0x74,0x1f,0xbf,0x0b,0x00,0x26,0x8a,0x01,0x3c,0xff,0x74,0x15, +/*00008ff0:*/0x47,0x38,0x06,0x49,0x04,0x75,0xf2,0x26,0x8a,0x07,0x32,0xe4,0x87,0x06,0x85,0x04, +/*00009000:*/0x8b,0xd8,0xe8,0x01,0x00,0xc3,0x8b,0x16,0x63,0x04,0x8a,0x26,0x85,0x04,0xfe,0xcc, +/*00009010:*/0x80,0xe4,0x1f,0x9c,0xfa,0x80,0xfa,0xd4,0x74,0x0b,0xb0,0x14,0xee,0x42,0xec,0x24, +/*00009020:*/0xe0,0x0a,0xc4,0xee,0x4a,0xb0,0x09,0xee,0x42,0xec,0x24,0xe0,0x0a,0xc4,0xee,0x9d, +/*00009030:*/0x8a,0xc8,0x8b,0xc3,0x8a,0x16,0x85,0x04,0xf6,0xf2,0x80,0x3e,0x84,0x04,0xff,0x75, +/*00009040:*/0x07,0xa2,0x84,0x04,0xfe,0x0e,0x84,0x04,0xf6,0xe2,0xf6,0xc1,0x80,0x74,0x02,0xd1, +/*00009050:*/0xe0,0x48,0x8a,0xe0,0xb0,0x12,0x8b,0x16,0x63,0x04,0xef,0xa0,0x4a,0x04,0x8a,0x26, +/*00009060:*/0x84,0x04,0xfe,0xc4,0xf6,0xe4,0xd1,0xe0,0x05,0x00,0x01,0xa3,0x4c,0x04,0xc3,0x1e, +/*00009070:*/0x32,0xff,0x8a,0xdc,0xbe,0x1d,0x3d,0x80,0xfb,0x10,0x74,0x0a,0xbe,0x0a,0x2d,0x80, +/*00009080:*/0xfb,0x0e,0x74,0x02,0x1f,0xc3,0x0e,0x1f,0x8b,0x3c,0x0b,0xff,0x74,0x10,0x81,0xe7, +/*00009090:*/0xff,0x00,0x46,0xc1,0xe7,0x05,0x03,0xfa,0x8b,0xcb,0xf3,0xa4,0xeb,0xea,0x1f,0xc3, +/*000090a0:*/0x8a,0x26,0x49,0x04,0x50,0x06,0x57,0xc4,0x3e,0xa8,0x04,0x26,0xc4,0x7d,0x08,0x8c, +/*000090b0:*/0xc5,0x0b,0xef,0x74,0x4a,0x8b,0xef,0x83,0xc7,0x0b,0x26,0x8a,0x05,0x3c,0xff,0x74, +/*000090c0:*/0x3e,0x38,0xe0,0x74,0x03,0x47,0xeb,0xf2,0x8b,0xfd,0x26,0x8a,0x3d,0x26,0x8a,0x5d, +/*000090d0:*/0x01,0x26,0x8b,0x4d,0x02,0x26,0x8b,0x55,0x04,0x26,0x8a,0x45,0x0a,0x3c,0xff,0x74, +/*000090e0:*/0x02,0xfe,0xc8,0x50,0xa0,0x84,0x04,0xfe,0xc0,0xf6,0x26,0x85,0x04,0xa3,0x85,0x04, +/*000090f0:*/0x58,0xa2,0x84,0x04,0x26,0xc4,0x7d,0x06,0x8b,0xef,0x32,0xc0,0xe8,0xa0,0xfd,0x5f, +/*00009100:*/0x07,0x58,0xc3,0x50,0x53,0x51,0x52,0x2e,0xa1,0x5a,0x56,0x0b,0xc0,0x74,0x09,0x2e, +/*00009110:*/0x8b,0x2e,0xfc,0x3d,0x0e,0x07,0xeb,0x07,0xb8,0x30,0x11,0xb7,0x02,0xcd,0x10,0x5a, +/*00009120:*/0x59,0x5b,0x58,0xc3,0x3c,0x04,0x7c,0x03,0xe9,0x2b,0x8a,0xe3,0xfb,0x53,0xe8,0x5a, +/*00009130:*/0xe7,0x86,0xfb,0x32,0xff,0xd1,0xe3,0x8b,0xfb,0x81,0xc7,0x50,0x04,0x8b,0x35,0x5b, +/*00009140:*/0x89,0x15,0x56,0x8b,0xf0,0x51,0x53,0x26,0x8a,0x46,0x00,0x45,0x3c,0x0d,0x7f,0x1f, +/*00009150:*/0x75,0x04,0x32,0xd2,0xeb,0x40,0x3c,0x0a,0x74,0x32,0x3c,0x07,0x75,0x05,0xe8,0x54, +/*00009160:*/0xe7,0xeb,0x64,0x3c,0x08,0x75,0x08,0x0a,0xd2,0x74,0x5c,0xfe,0xca,0xeb,0x27,0xf7, +/*00009170:*/0xc6,0x02,0x00,0x74,0x05,0x26,0x8a,0x5e,0x00,0x45,0xb9,0x01,0x00,0xb4,0x09,0xe8, +/*00009180:*/0x86,0x89,0xfe,0xc2,0x3a,0x16,0x4a,0x04,0x72,0x0c,0x32,0xd2,0x89,0x15,0x3a,0x36, +/*00009190:*/0x84,0x04,0x73,0x06,0xfe,0xc6,0x89,0x15,0xeb,0x2d,0x50,0x80,0x3e,0x49,0x04,0x03, +/*000091a0:*/0x7f,0x08,0xb8,0x00,0x08,0xe8,0x60,0x89,0xeb,0x09,0x80,0x3e,0x49,0x04,0x07,0x74, +/*000091b0:*/0xf1,0x32,0xe4,0x86,0x3e,0x62,0x04,0x53,0x8a,0xfc,0x55,0xe8,0x27,0x00,0x5d,0x5b, +/*000091c0:*/0x86,0x3e,0x62,0x04,0x58,0x8b,0x15,0x5b,0x59,0xe2,0x17,0x5a,0xf7,0xc6,0x01,0x00, +/*000091d0:*/0x75,0x02,0x89,0x15,0x8b,0x05,0x3a,0x3e,0x62,0x04,0x75,0x03,0xe8,0xd8,0xe9,0xe9, +/*000091e0:*/0x74,0x89,0xe9,0x60,0xff,0x33,0xc9,0x8a,0x36,0x84,0x04,0x8a,0x16,0x4a,0x04,0xfe, +/*000091f0:*/0xca,0xb8,0x01,0x06,0xe8,0x11,0x89,0xc3,0xe8,0x90,0xe6,0x0a,0xc0,0x75,0x0f,0xe8, +/*00009200:*/0x1c,0x00,0x8b,0xec,0x89,0x5e,0x10,0xc6,0x46,0x1c,0x1a,0xe9,0x48,0x89,0x3c,0x01, +/*00009210:*/0x75,0x09,0xe8,0x43,0x00,0x8b,0xec,0xc6,0x46,0x1c,0x1a,0xe9,0x38,0x89,0xa0,0x8a, +/*00009220:*/0x04,0xbf,0xfc,0x92,0x2e,0x3a,0x05,0x72,0x04,0xbb,0xff,0xff,0xc3,0x32,0xe4,0xd1, +/*00009230:*/0xe0,0x03,0xf8,0x2e,0x8b,0x5d,0x04,0x0a,0xdb,0x74,0x05,0x0a,0xff,0x75,0x04,0xc3, +/*00009240:*/0x86,0xfb,0xc3,0xa0,0x10,0x04,0x24,0x30,0x3c,0x30,0x74,0x06,0xf6,0xc3,0x01,0x75, +/*00009250:*/0xef,0xc3,0xf6,0xc3,0x01,0x74,0xe9,0xc3,0xbf,0xfc,0x92,0x2e,0x8a,0x0d,0x32,0xc0, +/*00009260:*/0x83,0xc7,0x04,0x2e,0x3b,0x1d,0x74,0x12,0x86,0xfb,0x2e,0x3b,0x1d,0x74,0x0b,0x83, +/*00009270:*/0xc7,0x02,0xfe,0xc0,0x38,0xc8,0x7e,0xeb,0xb0,0xff,0xa2,0x8a,0x04,0xc3,0xbb,0x08, +/*00009280:*/0x00,0xf6,0x06,0x89,0x04,0x02,0x74,0x0e,0xbb,0x07,0x00,0xba,0xcc,0x03,0xec,0xa8, +/*00009290:*/0x01,0x74,0x1a,0xbb,0x08,0x00,0xba,0xb4,0x03,0xe8,0x7f,0xe9,0x0a,0xc0,0x74,0x23, +/*000092a0:*/0xb7,0x01,0xe8,0xfb,0xe5,0x80,0xfa,0xd4,0x74,0x19,0x86,0xfb,0xc3,0xba,0xd4,0x03, +/*000092b0:*/0xe8,0x68,0xe9,0x0a,0xc0,0x74,0x0c,0xb7,0x02,0xe8,0xe4,0xe5,0x80,0xfa,0xb4,0x74, +/*000092c0:*/0x02,0x86,0xfb,0xc3,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x03,0x01,0x03,0x01, +/*000092d0:*/0x01,0x01,0x00,0x08,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0f,0x01,0x0f,0x08, +/*000092e0:*/0x0f,0x04,0x00,0x02,0x0f,0x02,0x01,0x01,0x0f,0x01,0xff,0x01,0xff,0xe0,0x0f,0x00, +/*000092f0:*/0x00,0x00,0x00,0x07,0x02,0x08,0xff,0x0e,0x00,0x00,0x3f,0x00,0x10,0x01,0x08,0x00, +/*00009300:*/0x00,0x00,0x00,0x01,0x00,0x02,0x02,0x01,0x00,0x04,0x04,0x01,0x00,0x05,0x02,0x05, +/*00009310:*/0x00,0x06,0x01,0x06,0x05,0x06,0x00,0x08,0x01,0x08,0x00,0x07,0x02,0x07,0x06,0x07, +/*00009320:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +/*00009330:*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x53,0x66,0x51,0x57,0x06,0x1e,0x55, +/*00009340:*/0x8b,0xf5,0x81,0xec,0x80,0x00,0x8b,0xec,0x56,0xb3,0x81,0x66,0x33,0xc9,0xb9,0x80, +/*00009350:*/0x00,0x8c,0xd2,0x8b,0xfd,0x53,0xe8,0x2f,0xcb,0x5b,0x5e,0x0a,0xe4,0x74,0x03,0xe9, +/*00009360:*/0x9b,0x01,0x8b,0xfd,0x8c,0xd0,0x8e,0xd8,0x8e,0xc0,0x26,0x80,0x3d,0x20,0x75,0x60, +/*00009370:*/0x57,0x53,0x47,0x66,0x26,0x8b,0x05,0x4f,0xbb,0x34,0x93,0x66,0x2e,0x89,0x07,0xbb, +/*00009380:*/0x54,0xa1,0xb8,0x00,0x00,0x66,0x2e,0x83,0x3f,0xff,0x74,0x18,0x66,0x2e,0x8b,0x0f, +/*00009390:*/0x47,0x66,0x26,0x8b,0x05,0x4f,0x66,0x3b,0xc1,0x74,0x05,0x83,0xc3,0x06,0xeb,0xe2, +/*000093a0:*/0x2e,0x8b,0x47,0x04,0xbb,0x32,0x93,0x2e,0x89,0x07,0x5b,0x5f,0x26,0xff,0x75,0x7e, +/*000093b0:*/0x56,0x66,0xb9,0x00,0x01,0x80,0x01,0x8c,0xd2,0x8b,0xfd,0xe8,0xca,0xca,0x5e,0x5b, +/*000093c0:*/0x8c,0xd0,0x8e,0xd8,0x8e,0xc0,0x8b,0xfe,0x8b,0xf5,0xe8,0xad,0x02,0xe9,0x35,0x01, +/*000093d0:*/0x8c,0xd0,0x8e,0xd8,0x8e,0xc0,0x8b,0xfe,0x8b,0xf5,0x66,0x81,0x3c,0x00,0xff,0xff, +/*000093e0:*/0xff,0x74,0x03,0xe9,0x17,0x01,0x66,0x81,0x7c,0x04,0xff,0xff,0xff,0x00,0x74,0x03, +/*000093f0:*/0xe9,0x0a,0x01,0x66,0x8b,0x44,0x08,0xbb,0x34,0x93,0x66,0x2e,0x89,0x07,0xbb,0x4a, +/*00009400:*/0xa1,0xb8,0x00,0x00,0x66,0x2e,0x83,0x3f,0xff,0x74,0x1b,0x66,0x2e,0x8b,0x0f,0x66, +/*00009410:*/0x39,0x4c,0x08,0x74,0x05,0x83,0xc3,0x06,0xeb,0xe7,0x2e,0x8b,0x47,0x04,0xbb,0x32, +/*00009420:*/0x93,0x2e,0x89,0x07,0xeb,0x20,0xbb,0x32,0x93,0x2e,0x89,0x07,0x83,0xc6,0x23,0x8b, +/*00009430:*/0x1c,0x83,0xee,0x23,0x83,0xfb,0x00,0x74,0x0d,0x53,0xb8,0x40,0x07,0xbb,0x32,0x93, +/*00009440:*/0x2e,0x89,0x07,0x5b,0xeb,0x50,0x83,0xc6,0x23,0x8b,0x1c,0x83,0xc6,0x13,0xb9,0x04, +/*00009450:*/0x00,0x8b,0x04,0x3d,0xc4,0x09,0x77,0x08,0x83,0xc6,0x12,0x49,0x75,0xf3,0xeb,0x36, +/*00009460:*/0x8a,0x44,0x02,0x8a,0xe0,0x8a,0x44,0x04,0x86,0xc4,0xc0,0xec,0x04,0x3d,0x40,0x06, +/*00009470:*/0x72,0x07,0x0b,0xdb,0x75,0x20,0xbe,0x01,0x98,0xb9,0x12,0x00,0xf3,0xa4,0x53,0x83, +/*00009480:*/0xef,0x12,0xe8,0xda,0x05,0xc1,0xe8,0x03,0x8b,0xd8,0xe8,0xc4,0x05,0xf6,0xf3,0x5b, +/*00009490:*/0x3c,0x0c,0x77,0x02,0xeb,0x6f,0x8c,0xc8,0x8e,0xd8,0x8b,0xc3,0xf6,0xc4,0x01,0x74, +/*000094a0:*/0x05,0xbe,0x4d,0x97,0xeb,0xd3,0xf6,0xc4,0x08,0x74,0x05,0xbe,0x5f,0x97,0xeb,0xc9, +/*000094b0:*/0xf6,0xc4,0x04,0x74,0x05,0xbe,0x71,0x97,0xeb,0xbf,0xf6,0xc4,0x02,0x74,0x05,0xbe, +/*000094c0:*/0x83,0x97,0xeb,0xb5,0xa8,0x01,0x74,0x05,0xbe,0x95,0x97,0xeb,0xac,0xf6,0xc4,0x80, +/*000094d0:*/0x74,0x05,0xbe,0xa7,0x97,0xeb,0xa2,0xf6,0xc4,0x40,0x74,0x05,0xbe,0xb9,0x97,0xeb, +/*000094e0:*/0x98,0xa8,0x20,0x74,0x05,0xbe,0xcb,0x97,0xeb,0x8f,0xa8,0x08,0x74,0x05,0xbe,0xdd, +/*000094f0:*/0x97,0xeb,0x86,0xa8,0x04,0x74,0x06,0xbe,0xef,0x97,0xe9,0x7c,0xff,0x32,0xc0,0xb9, +/*00009500:*/0x12,0x00,0xaa,0xe2,0xfd,0x81,0xc4,0x80,0x00,0x5d,0x1f,0x07,0x5f,0x66,0x59,0x5b, +/*00009510:*/0x58,0xc3,0x55,0x83,0xec,0x12,0x8b,0xec,0xe8,0x1d,0xfe,0x8c,0xd0,0x8e,0xd8,0x8c, +/*00009520:*/0xc8,0x8e,0xc0,0xbf,0x20,0x93,0x8b,0xf5,0xb9,0x09,0x00,0xf3,0xa5,0x83,0xc4,0x12, +/*00009530:*/0x5d,0xc3,0x50,0x57,0xbf,0x20,0x93,0x06,0x0e,0x07,0xe8,0x14,0x05,0x07,0x8b,0xd0, +/*00009540:*/0x5f,0x58,0xc3,0x50,0x57,0xbf,0x20,0x93,0x06,0x0e,0x07,0xe8,0x11,0x05,0x07,0x8b, +/*00009550:*/0xd0,0x5f,0x58,0xc3,0x80,0x02,0x20,0x03,0x00,0x04,0x00,0x05,0x78,0x05,0x40,0x06, +/*00009560:*/0x80,0x07,0x00,0x08,0x50,0x53,0x52,0xe8,0x3b,0xc1,0xb2,0x20,0xed,0x24,0xf7,0xee, +/*00009570:*/0x50,0xbb,0x00,0x02,0xe8,0x11,0xc9,0x0a,0xdb,0x58,0x74,0x08,0xf6,0xc4,0x03,0x75, +/*00009580:*/0x03,0x0c,0x08,0xee,0x5a,0x5b,0x58,0xc3,0xe8,0xd9,0xff,0xc3,0x50,0x53,0x52,0x50, +/*00009590:*/0x24,0x7f,0xb4,0xff,0x8b,0xd8,0xf6,0xd7,0xe8,0x0a,0xc1,0xb2,0x11,0xec,0x22,0xc7, +/*000095a0:*/0x0a,0xc3,0xee,0x58,0xe8,0xfe,0xc0,0xbb,0x84,0x02,0xe8,0x3a,0xc2,0x24,0xfd,0xe8, +/*000095b0:*/0x90,0xc1,0xbb,0xa4,0x02,0xe8,0x2f,0xc2,0x24,0xfd,0x0c,0x01,0xe8,0x83,0xc1,0xe8, +/*000095c0:*/0x34,0xc2,0x0c,0x10,0xe8,0x8a,0xc1,0x5a,0x5b,0x58,0xc3,0x50,0x52,0xe8,0xd5,0xc0, +/*000095d0:*/0xb2,0x12,0xec,0x0c,0x04,0xee,0xb2,0x29,0xb0,0x0f,0xee,0x5a,0x58,0xc3,0x50,0x53, +/*000095e0:*/0x52,0xe8,0xc1,0xc0,0xb2,0x27,0xec,0xbb,0x00,0x02,0xa8,0x08,0x74,0x02,0xeb,0x02, +/*000095f0:*/0xeb,0x03,0xe8,0x04,0x00,0x5a,0x5b,0x58,0xc3,0x1e,0x06,0xe8,0x14,0xff,0x8c,0xc8, +/*00009600:*/0x8e,0xd8,0x8e,0xc0,0xbf,0x20,0x93,0xe8,0x42,0x00,0x07,0x1f,0x0a,0xc0,0x74,0x03, +/*00009610:*/0xe8,0x79,0xff,0xc3,0x52,0x50,0xe8,0x8c,0xc0,0xe8,0x6c,0xff,0xbb,0x00,0x02,0xe8, +/*00009620:*/0x69,0x03,0x74,0x25,0xe8,0xd2,0xff,0xe8,0xa1,0xff,0x0a,0xc0,0x74,0x1b,0xe8,0x31, +/*00009630:*/0xcc,0x8a,0xe0,0xe8,0x55,0x03,0x74,0x03,0x80,0xcc,0x08,0xe8,0x15,0xcc,0xeb,0x09, +/*00009640:*/0xe8,0x62,0xc0,0xb2,0x20,0xec,0x0c,0x08,0xee,0x58,0x5a,0xc3,0x53,0x51,0x57,0x50, +/*00009650:*/0xe8,0xfe,0x03,0x8b,0xd8,0x58,0x32,0xc0,0x83,0xfb,0x00,0x74,0x19,0x33,0xc9,0xbf, +/*00009660:*/0x54,0x95,0x3b,0x1d,0x74,0x0c,0xfe,0xc1,0x83,0xc7,0x02,0x80,0xf9,0x08,0x74,0x06, +/*00009670:*/0xeb,0xf0,0xb0,0x01,0xd2,0xe0,0x5f,0x59,0x5b,0xc3,0x50,0x33,0xc0,0x33,0xd2,0xf6, +/*00009680:*/0xc3,0x20,0x74,0x11,0x8a,0x04,0xb1,0x01,0xa8,0x80,0x74,0x02,0xb1,0x03,0x24,0x1f, +/*00009690:*/0xf6,0xe1,0x40,0x03,0xd0,0x8a,0xc3,0xc0,0xe8,0x02,0x24,0x07,0xb4,0x08,0xf6,0xe4, +/*000096a0:*/0x03,0xd0,0x8b,0xca,0x8a,0xc3,0x24,0x03,0xb4,0x1b,0xf6,0xe4,0x03,0xd0,0x8a,0xc7, +/*000096b0:*/0xc0,0xe8,0x03,0x24,0x1f,0xb4,0x04,0xf6,0xe4,0x03,0xd0,0x03,0xce,0x03,0xf2,0x8a, +/*000096c0:*/0xc7,0x24,0x03,0x8b,0xd9,0x32,0xed,0x8a,0xc8,0x8b,0x04,0x0b,0xc0,0x75,0x08,0x83, +/*000096d0:*/0xc6,0x12,0x49,0x75,0xf4,0xeb,0x07,0xb9,0x12,0x00,0xf3,0xa4,0xeb,0x6d,0x8b,0xf3, +/*000096e0:*/0x8b,0x44,0x09,0x26,0x89,0x05,0x8b,0x44,0x12,0x26,0x89,0x45,0x0c,0x8a,0x44,0x14, +/*000096f0:*/0x26,0x88,0x45,0x0e,0x8b,0x44,0x02,0x26,0x89,0x45,0x0f,0x8a,0x44,0x1a,0x26,0x88, +/*00009700:*/0x45,0x11,0x8a,0x44,0x15,0x26,0x88,0x45,0x02,0x8a,0x44,0x16,0x26,0x88,0x45,0x05, +/*00009710:*/0x66,0x8b,0x44,0x0e,0x66,0x26,0x89,0x45,0x08,0x8a,0x44,0x0b,0x26,0x88,0x45,0x03, +/*00009720:*/0x8a,0x44,0x0c,0x26,0x88,0x45,0x06,0x8a,0x44,0x0d,0x8a,0xe0,0xc0,0xe4,0x04,0x8a, +/*00009730:*/0x44,0x17,0x24,0xf0,0x0a,0xc4,0x26,0x88,0x45,0x04,0x8a,0x44,0x0d,0x8a,0xe0,0x80, +/*00009740:*/0xe4,0x0f,0x8a,0x44,0x17,0x0a,0xc4,0x26,0x88,0x45,0x07,0x58,0xc3,0xbc,0x34,0x00, +/*00009750:*/0x98,0x51,0x00,0x2a,0x40,0x10,0x90,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x64, +/*00009760:*/0x19,0x00,0x40,0x41,0x00,0x26,0x30,0x18,0x88,0x36,0x00,0x00,0x00,0x00,0x00,0x00, +/*00009770:*/0x18,0x4c,0x1d,0x00,0x30,0x41,0x00,0x26,0x30,0x18,0x88,0x36,0x00,0x00,0x00,0x00, +/*00009780:*/0x00,0x00,0x18,0xc3,0x1e,0x00,0x20,0x41,0x00,0x20,0x30,0x10,0x60,0x13,0x00,0x00, +/*00009790:*/0x00,0x00,0x00,0x00,0x1e,0xa0,0x0f,0x20,0x00,0x31,0x58,0x1c,0x20,0x28,0x80,0x13, +/*000097a0:*/0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x88,0x13,0x20,0xf0,0x30,0x58,0x42,0x20,0x38, +/*000097b0:*/0x78,0x56,0x08,0x00,0x00,0x00,0x00,0x00,0x1e,0x56,0x13,0x20,0x00,0x31,0x58,0x19, +/*000097c0:*/0x20,0x10,0x50,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0xd6,0x09,0x80,0xa0,0x20, +/*000097d0:*/0xe0,0x2d,0x10,0x10,0x60,0xa2,0x00,0x00,0x00,0x00,0x08,0x08,0x18,0x4e,0x0c,0x80, +/*000097e0:*/0xc0,0x20,0xe0,0x28,0x10,0x18,0x28,0x93,0x00,0x00,0x00,0x00,0x08,0x08,0x18,0x4e, +/*000097f0:*/0x0c,0x80,0xc8,0x20,0xe0,0x14,0x10,0x10,0x40,0x13,0x00,0x00,0x00,0x00,0x00,0x00, +/*00009800:*/0x18,0x9c,0x36,0x40,0x08,0x61,0xb0,0x32,0x40,0x08,0x40,0x13,0x00,0x00,0x00,0x00, +/*00009810:*/0x00,0x00,0x1e,0xb9,0x04,0x00,0x51,0x57,0x8b,0x5d,0x1d,0xe8,0x62,0xce,0x5f,0x59, +/*00009820:*/0xfe,0xc5,0xfe,0xc9,0x75,0xf0,0x8b,0x45,0x1d,0xe8,0xab,0xd6,0xc3,0x50,0x53,0xbb, +/*00009830:*/0x84,0x02,0xe8,0xf6,0xbf,0x80,0xe4,0xdf,0xe8,0x49,0xbf,0xe8,0x03,0x00,0x5b,0x58, +/*00009840:*/0xc3,0x66,0x50,0x53,0xbb,0x84,0x02,0xe8,0x18,0xc0,0x66,0xc1,0xc0,0x10,0x24,0xc3, +/*00009850:*/0x80,0xcc,0x03,0x80,0xe4,0xf7,0x66,0xc1,0xc0,0x10,0xe8,0x5c,0xbf,0xe8,0xa9,0xd6, +/*00009860:*/0xbb,0x84,0x02,0xe8,0xca,0xbf,0x24,0xfe,0x0c,0x82,0x80,0xcc,0x08,0xe8,0x26,0xc7, +/*00009870:*/0x74,0x04,0x0c,0x03,0x24,0x7f,0x0c,0x40,0xe8,0x0e,0xbf,0xe8,0xe3,0x00,0x75,0x03, +/*00009880:*/0xe8,0x68,0x02,0xe8,0xac,0xfc,0x3d,0x40,0x06,0x72,0x09,0xe8,0x17,0xbe,0xb2,0x54, +/*00009890:*/0xec,0x0c,0x01,0xee,0xbb,0x64,0x0d,0xe8,0x4d,0xbf,0x24,0xfc,0xe8,0xf7,0xc6,0x74, +/*000098a0:*/0x02,0x0c,0x02,0xe8,0x9c,0xbe,0x5b,0x66,0x58,0xc3,0x50,0x53,0xbb,0x84,0x02,0xe8, +/*000098b0:*/0x35,0xbf,0x0c,0x05,0xe8,0x8b,0xbe,0xbb,0xa4,0x02,0xe8,0x2a,0xbf,0x0c,0x01,0xe8, +/*000098c0:*/0x80,0xbe,0x5b,0x58,0xc3,0x66,0x50,0x53,0xbb,0x84,0x02,0xe8,0x94,0xbf,0x66,0x33, +/*000098d0:*/0xc0,0xe8,0xe5,0xbe,0xe8,0x04,0x02,0xe8,0xd9,0xc6,0xbb,0x64,0x0d,0xe8,0x07,0xbf, +/*000098e0:*/0x24,0xfc,0xe8,0x5d,0xbe,0x5b,0x66,0x58,0xc3,0x50,0x53,0xbb,0x84,0x02,0xe8,0xf6, +/*000098f0:*/0xbe,0x24,0xfd,0xe8,0x4c,0xbe,0x5b,0x58,0xc3,0x50,0x53,0xbb,0x84,0x02,0xe8,0xe6, +/*00009900:*/0xbe,0x0c,0x02,0xe8,0x3c,0xbe,0x5b,0x58,0xc3,0x50,0x53,0xe8,0x33,0xff,0xe8,0x60, +/*00009910:*/0x00,0x75,0x0b,0xbb,0x84,0x02,0xe8,0xce,0xbe,0x24,0xfa,0xe8,0x24,0xbe,0xbb,0x88, +/*00009920:*/0x02,0xe8,0xc3,0xbe,0x0c,0x04,0xe8,0x19,0xbe,0x5b,0x58,0xc3,0x66,0x50,0x53,0xbb, +/*00009930:*/0x88,0x02,0xe8,0xb2,0xbe,0x24,0xfb,0xe8,0x08,0xbe,0xe8,0x76,0xc6,0x5b,0x66,0x58, +/*00009940:*/0xc3,0x50,0x53,0xbb,0x88,0x02,0xe8,0x9e,0xbe,0x24,0xfd,0xe8,0xf4,0xbd,0x5b,0x58, +/*00009950:*/0xc3,0x50,0x53,0xbb,0x88,0x02,0xe8,0x8e,0xbe,0x0c,0x02,0xe8,0xe4,0xbd,0x5b,0x58, +/*00009960:*/0xc3,0x50,0x52,0xe8,0x3f,0xbd,0xe8,0xff,0xc5,0xeb,0x03,0xe8,0x11,0xc6,0x5a,0x58, +/*00009970:*/0xc3,0x50,0x52,0xe8,0x2f,0xbd,0xb2,0x23,0xec,0xa8,0x08,0x5a,0x58,0xc3,0x50,0x52, +/*00009980:*/0xe8,0x22,0xbd,0xb2,0x23,0xec,0xa8,0x80,0x5a,0x58,0xc3,0x50,0xe8,0x41,0xc8,0xa8, +/*00009990:*/0x08,0x58,0xc3,0x50,0x52,0xe8,0x0d,0xbd,0xb2,0x24,0xed,0x0c,0x08,0x80,0xe4,0xf7, +/*000099a0:*/0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xfc,0xbc,0xb2,0x24,0xed,0x25,0xf7,0xf7,0xef, +/*000099b0:*/0x5a,0x58,0xc3,0x50,0x52,0xe8,0xed,0xbc,0xb2,0x24,0xed,0x0c,0x80,0x80,0xe4,0x7f, +/*000099c0:*/0xef,0x5a,0x58,0xc3,0x50,0x52,0xe8,0xdc,0xbc,0xb2,0x24,0xed,0x25,0x7f,0x7f,0xef, +/*000099d0:*/0x5a,0x58,0xc3,0x80,0xf9,0x04,0x74,0x1f,0x0a,0xc9,0x74,0x0c,0xbb,0x84,0x02,0xe8, +/*000099e0:*/0x05,0xbe,0x24,0xfa,0xe8,0x5b,0xbd,0xc3,0xbb,0x84,0x02,0xe8,0xf9,0xbd,0x0c,0x05, +/*000099f0:*/0xe8,0x4f,0xbd,0xe8,0xf3,0xfe,0xc3,0xe8,0xff,0xfe,0xc3,0x50,0x53,0x51,0x52,0xe8, +/*00009a00:*/0x89,0xff,0x74,0x0e,0xe8,0x99,0x74,0xe8,0x28,0xfb,0x32,0xc0,0x3b,0xd1,0x72,0x02, +/*00009a10:*/0xb0,0x01,0x0a,0xc0,0x5a,0x59,0x5b,0x58,0xc3,0x66,0x50,0x53,0x51,0x52,0x1e,0x06, +/*00009a20:*/0x57,0xc7,0x46,0x19,0x00,0x00,0xe8,0x77,0x74,0xe8,0x45,0x01,0x5f,0x07,0x1f,0x5a, +/*00009a30:*/0x59,0x5b,0x66,0x58,0xc3,0x66,0x50,0x52,0xe8,0xb2,0x04,0xe8,0x9d,0x00,0xe8,0x3e, +/*00009a40:*/0xc5,0x75,0x03,0xe8,0xa5,0x00,0x5a,0x66,0x58,0xc3,0xe8,0x04,0x00,0xc1,0xe8,0x03, +/*00009a50:*/0xc3,0x26,0x8a,0x45,0x04,0x8a,0xe0,0x26,0x8a,0x45,0x02,0xc0,0xec,0x04,0xc3,0x26, +/*00009a60:*/0x8a,0x45,0x07,0x8a,0xe0,0x26,0x8a,0x45,0x05,0xc0,0xec,0x04,0xc3,0xe8,0x04,0x00, +/*00009a70:*/0xc1,0xe8,0x03,0xc3,0x26,0x8a,0x45,0x04,0x8a,0xe0,0x26,0x8a,0x45,0x03,0x80,0xe4, +/*00009a80:*/0x0f,0xc3,0x26,0x8a,0x45,0x07,0x8a,0xe0,0x26,0x8a,0x45,0x06,0x80,0xe4,0x0f,0xc3, +/*00009a90:*/0xe8,0x04,0x00,0xc1,0xe8,0x03,0xc3,0x26,0x8a,0x45,0x0b,0x8a,0xe0,0x26,0x8a,0x45, +/*00009aa0:*/0x09,0x80,0xe4,0x3f,0xc0,0xec,0x04,0xc3,0x26,0x8a,0x45,0x0b,0x8a,0xe0,0x80,0xe4, +/*00009ab0:*/0x03,0x26,0x8a,0x45,0x0a,0xc0,0xe0,0x04,0xc1,0xe8,0x04,0xc3,0x26,0x8a,0x45,0x0b, +/*00009ac0:*/0x8a,0xe0,0x26,0x8a,0x45,0x08,0xc0,0xec,0x06,0xc3,0x26,0x8a,0x45,0x0b,0x8a,0xe0, +/*00009ad0:*/0x26,0x8a,0x45,0x0a,0xc0,0xec,0x02,0xc1,0xe8,0x04,0xc3,0x50,0x53,0xbb,0x7c,0x02, +/*00009ae0:*/0xe8,0x04,0xbd,0x24,0xf0,0xe8,0x5a,0xbc,0x5b,0x58,0xc3,0x53,0xbb,0x7c,0x02,0xe8, +/*00009af0:*/0xf5,0xbc,0x0c,0x0c,0xe8,0x4b,0xbc,0x06,0x57,0x8c,0xc8,0xbf,0x20,0x93,0x8e,0xc0, +/*00009b00:*/0x66,0x33,0xc0,0xe8,0x67,0xff,0xbb,0x50,0x02,0xe8,0xad,0xbc,0xe8,0x73,0xff,0xbb, +/*00009b10:*/0x54,0x02,0xe8,0xa4,0xbc,0xe8,0x78,0xff,0x66,0xc1,0xe0,0x10,0xe8,0x9d,0xff,0xbb, +/*00009b20:*/0xc4,0x02,0xe8,0x94,0xbc,0xbb,0x58,0x02,0xe8,0x8e,0xbc,0xe8,0x7a,0xff,0x66,0xc1, +/*00009b30:*/0xe0,0x10,0xe8,0x95,0xff,0xbb,0xc8,0x02,0xe8,0x7e,0xbc,0xbb,0x5c,0x02,0xe8,0x78, +/*00009b40:*/0xbc,0xe8,0x06,0xff,0x48,0x66,0xc1,0xe0,0x10,0xe8,0x13,0xff,0x48,0xbb,0x78,0x02, +/*00009b50:*/0xe8,0x66,0xbc,0xbb,0x8c,0x02,0xe8,0x9d,0xbc,0x24,0xfd,0x0c,0x08,0xe8,0xf1,0xbb, +/*00009b60:*/0xbb,0x90,0x02,0xe8,0x90,0xbc,0x24,0xfd,0x0c,0x08,0xe8,0xe4,0xbb,0x5f,0x07,0x5b, +/*00009b70:*/0xc3,0x55,0x83,0xc5,0x19,0x06,0x8c,0xc8,0xbf,0x20,0x93,0x8e,0xc0,0xc7,0x46,0x00, +/*00009b80:*/0x00,0x00,0xe8,0xcc,0xfe,0x3b,0xc1,0x73,0x03,0xe9,0xd6,0x00,0xc1,0xe9,0x03,0x49, +/*00009b90:*/0x26,0x8b,0x05,0x0b,0xc0,0x75,0x03,0xe9,0xc8,0x00,0x52,0x89,0x46,0x1d,0x89,0x4e, +/*00009ba0:*/0x02,0x8b,0xd1,0xe8,0xc7,0xfe,0x50,0x83,0xf9,0x27,0x75,0x02,0xd1,0xe8,0x8b,0xd8, +/*00009bb0:*/0x03,0xc1,0x03,0xda,0x83,0xe3,0x3f,0x88,0x5e,0x0d,0x5b,0x83,0xe8,0x04,0x89,0x46, +/*00009bc0:*/0x00,0x26,0x8a,0x45,0x0f,0xc0,0xe8,0x03,0x32,0xe4,0x89,0x46,0x08,0x89,0x46,0x0a, +/*00009bd0:*/0x88,0x56,0x0c,0xe8,0xe6,0xfe,0xc1,0xe8,0x03,0x03,0xc2,0xc1,0xe0,0x03,0x89,0x46, +/*00009be0:*/0x04,0x8b,0xd9,0x8b,0xc8,0xe8,0xaf,0xfe,0x83,0xfb,0x27,0x75,0x02,0xd1,0xe8,0x80, +/*00009bf0:*/0xe4,0x03,0x03,0xc1,0xc1,0xe8,0x03,0x83,0xe0,0x3f,0x50,0x26,0x8a,0x45,0x11,0x8a, +/*00009c00:*/0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x02,0xc0,0xe3,0x06,0x0a,0xc3,0x32,0xe4,0x89,0x46, +/*00009c10:*/0x06,0x59,0x49,0x89,0x4e,0x10,0x8b,0xd1,0xe8,0x67,0xfe,0x8b,0xd8,0x03,0xc1,0x03, +/*00009c20:*/0xda,0x81,0xe3,0xff,0x00,0x88,0x5e,0x1c,0x48,0x89,0x46,0x0e,0x26,0x8a,0x45,0x10, +/*00009c30:*/0x32,0xe4,0x89,0x46,0x16,0x89,0x46,0x18,0x89,0x56,0x1a,0xe8,0x8c,0xfe,0x03,0xd0, +/*00009c40:*/0x89,0x56,0x12,0xe8,0x62,0xfe,0x03,0xc2,0x83,0xe0,0x1f,0x50,0x26,0x8a,0x45,0x11, +/*00009c50:*/0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x04,0xc0,0xe3,0x05,0x0a,0xc3,0x32,0xe4,0x89, +/*00009c60:*/0x46,0x14,0x07,0x5d,0xc3,0x06,0x8c,0xc8,0xbf,0x20,0x93,0x8e,0xc0,0x26,0x8b,0x05, +/*00009c70:*/0x0b,0xc0,0x75,0x07,0xc6,0x46,0x02,0x00,0xe9,0xa7,0x00,0x89,0x46,0x12,0xe8,0xd0, +/*00009c80:*/0xfd,0x8a,0x5e,0x02,0xc6,0x46,0x02,0x00,0x39,0x46,0x24,0x76,0x03,0xe9,0x92,0x00, +/*00009c90:*/0x88,0x5e,0x02,0x8a,0x46,0x07,0x8a,0x66,0x11,0xc0,0xec,0x03,0x80,0xe4,0x07,0x8b, +/*00009ca0:*/0xd0,0xe8,0xc9,0xfd,0x03,0xc2,0x88,0x46,0x06,0x80,0xe4,0x07,0x80,0x66,0x11,0x38, +/*00009cb0:*/0x08,0x66,0x11,0x26,0x8a,0x45,0x0f,0x8a,0xe0,0x89,0x46,0x14,0xe8,0xfd,0xfd,0xc1, +/*00009cc0:*/0xe8,0x03,0x03,0xc2,0x88,0x46,0x08,0x80,0xe4,0x03,0xc0,0xe4,0x06,0x08,0x66,0x11, +/*00009cd0:*/0xe8,0xbd,0xfd,0x50,0x26,0x8a,0x45,0x11,0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x02, +/*00009ce0:*/0xc0,0xe3,0x06,0x0a,0xc3,0x88,0x46,0x09,0x8b,0x46,0x0c,0x8b,0xd0,0xe8,0x92,0xfd, +/*00009cf0:*/0x03,0xc2,0x89,0x46,0x0a,0x26,0x8a,0x45,0x10,0x8a,0xe0,0x89,0x46,0x16,0xc6,0x46, +/*00009d00:*/0x1b,0x00,0xe8,0xc5,0xfd,0x03,0xd0,0x89,0x56,0x0e,0xe8,0x9b,0xfd,0x50,0x26,0x8a, +/*00009d10:*/0x45,0x11,0x8a,0xd8,0x58,0xf6,0xd3,0x80,0xe3,0x04,0xc0,0xe3,0x05,0x0a,0xc3,0x88, +/*00009d20:*/0x46,0x10,0x07,0xc3,0x50,0x51,0x52,0xbb,0x04,0x02,0xe8,0xc4,0xba,0x24,0x80,0x8a, +/*00009d30:*/0xc8,0xd0,0xe9,0xbb,0x0c,0x02,0xe8,0xb8,0xba,0x24,0x80,0x0a,0xc8,0xba,0xcc,0x03, +/*00009d40:*/0xec,0x24,0x3f,0x0a,0xc1,0xba,0xc2,0x03,0xee,0x5a,0x59,0x58,0xc3,0x66,0x50,0x66, +/*00009d50:*/0x53,0x52,0x1e,0x06,0xe8,0x4c,0x84,0x74,0x03,0xe9,0x0a,0x01,0x8c,0xd0,0x8e,0xd8, +/*00009d60:*/0x8e,0xc0,0x8b,0xfd,0xbb,0x34,0x93,0x66,0x2e,0x81,0x3f,0x52,0xd4,0x30,0x00,0x75, +/*00009d70:*/0x0c,0x8b,0x5d,0x02,0x66,0xc1,0xc3,0x10,0x8b,0x1d,0x43,0xeb,0x10,0x8b,0x5d,0x02, +/*00009d80:*/0x66,0xc1,0xc3,0x10,0x8b,0x1d,0x0b,0xdb,0x75,0x03,0xe9,0xd9,0x00,0xe8,0x15,0xb9, +/*00009d90:*/0xb8,0x50,0x02,0xe8,0xf0,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x00,0x02, +/*00009da0:*/0xe8,0xe3,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x06,0x66,0xc1,0xc3, +/*00009db0:*/0x10,0x8b,0x5d,0x04,0xb8,0xc4,0x02,0xe8,0xcc,0xba,0xb2,0x04,0xec,0x24,0x07,0x0a, +/*00009dc0:*/0xd8,0x80,0xcb,0x02,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x04,0x02,0xe8,0xb7,0xba,0xb2, +/*00009dd0:*/0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x10,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x0e, +/*00009de0:*/0xb8,0x54,0x02,0xe8,0xa0,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xb8,0x08,0x02, +/*00009df0:*/0xe8,0x93,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x14,0x66,0xc1,0xc3, +/*00009e00:*/0x10,0x8b,0x5d,0x12,0xb8,0xc8,0x02,0xe8,0x7c,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66, +/*00009e10:*/0xef,0xb8,0x0c,0x02,0xe8,0x6f,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d, +/*00009e20:*/0x08,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x0a,0xb8,0x34,0x02,0xe8,0x58,0xba,0xb2,0x04, +/*00009e30:*/0x66,0x8b,0xc3,0x66,0xef,0x8b,0x5d,0x16,0x66,0xc1,0xc3,0x10,0x8b,0x5d,0x18,0xb8, +/*00009e40:*/0x38,0x02,0xe8,0x41,0xba,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef,0xe8,0xe0,0xc0,0xe8, +/*00009e50:*/0x1c,0x00,0xe8,0xe8,0xc0,0xe8,0x16,0x00,0xe8,0x06,0xfb,0x74,0x03,0xe8,0x8d,0x00, +/*00009e60:*/0xe8,0xb0,0xf9,0xe8,0xbe,0xfe,0x07,0x1f,0x5a,0x66,0x5b,0x66,0x58,0xc3,0x1e,0xe8, +/*00009e70:*/0x19,0xda,0x9c,0xfa,0x8b,0x16,0x63,0x04,0xb0,0x11,0xee,0x42,0xec,0x24,0x7f,0xee, +/*00009e80:*/0x4a,0xb0,0x02,0x26,0x8a,0x65,0x0c,0xef,0xb0,0x03,0xee,0x42,0xec,0x24,0xe0,0x26, +/*00009e90:*/0x8a,0x65,0x0d,0x80,0xe4,0x1f,0x0a,0xc4,0x0c,0x80,0xee,0x4a,0xb0,0x05,0xee,0x42, +/*00009ea0:*/0xec,0x24,0x7f,0x26,0x8a,0x65,0x0d,0xc0,0xe4,0x02,0x80,0xe4,0x80,0x0a,0xc4,0xee, +/*00009eb0:*/0x4a,0xb0,0x15,0x26,0x8a,0x65,0x1a,0xef,0xb0,0x07,0xee,0x42,0xec,0x24,0xf7,0x26, +/*00009ec0:*/0x8a,0x65,0x1b,0xc0,0xe4,0x03,0x80,0xe4,0x08,0x0a,0xc4,0xee,0x4a,0xb0,0x09,0xee, +/*00009ed0:*/0x42,0xec,0x24,0xdf,0x26,0x8a,0x65,0x1b,0xc0,0xe4,0x04,0x80,0xe4,0x20,0x0a,0xc4, +/*00009ee0:*/0xee,0x4a,0xb0,0x16,0x26,0x8a,0x65,0x1c,0xef,0x9d,0x1f,0xc3,0xc3,0x66,0x50,0x53, +/*00009ef0:*/0x51,0x52,0xe8,0xb1,0x00,0xe8,0x18,0x02,0x25,0xff,0x01,0x83,0xf8,0x50,0x76,0x11, +/*00009f00:*/0xb0,0x09,0xe8,0x9c,0xc8,0x24,0xf0,0x8a,0xe0,0xb0,0x09,0xe8,0xa7,0xc8,0xe9,0x8f, +/*00009f10:*/0x00,0xbb,0xbc,0x0d,0xb8,0x00,0x07,0xe8,0x6a,0xb8,0xb8,0x00,0x06,0xe8,0x69,0xb8, +/*00009f20:*/0xe8,0x82,0xb7,0xb8,0x8c,0x02,0xe8,0x5d,0xb9,0xb2,0x04,0x33,0xc0,0xef,0x80,0xc2, +/*00009f30:*/0x03,0xec,0x24,0x8f,0x0c,0x8c,0xee,0xb8,0x90,0x02,0xe8,0x49,0xb9,0xb2,0x04,0xed, +/*00009f40:*/0xb1,0x0c,0xd3,0xe8,0x83,0xe0,0x0f,0x8b,0xd8,0xfe,0xc2,0xfe,0xc2,0xed,0xb1,0x04, +/*00009f50:*/0xd3,0xe0,0x25,0xf0,0x0f,0x0b,0xc3,0xbb,0x32,0x93,0x2e,0x8b,0x1f,0xe8,0x29,0x82, +/*00009f60:*/0x74,0x06,0xd1,0xeb,0xd1,0xeb,0xd1,0xeb,0xf7,0xc3,0x04,0x00,0x75,0x07,0x83,0xe3, +/*00009f70:*/0x03,0x03,0xc3,0xeb,0x05,0x83,0xe3,0x03,0x2b,0xc3,0x8b,0xd8,0xd3,0xe8,0xee,0xd3, +/*00009f80:*/0xe3,0x80,0xe3,0xf0,0xfe,0xca,0xec,0x24,0x0f,0x0a,0xc3,0xee,0xb2,0x07,0xec,0x0c, +/*00009f90:*/0x8c,0xbb,0x32,0x93,0x2e,0x8b,0x1f,0xf7,0xc3,0x40,0x00,0x74,0x02,0x24,0x7f,0xee, +/*00009fa0:*/0x5a,0x59,0x5b,0x66,0x58,0xc3,0x66,0x56,0x66,0x50,0x53,0x51,0x52,0x33,0xc0,0xe8, +/*00009fb0:*/0xd7,0x81,0x75,0x03,0xb8,0x00,0x06,0xbb,0xbc,0x0d,0xe8,0xc7,0xb7,0xe8,0xc9,0xb7, +/*00009fc0:*/0xe8,0x4d,0x01,0x25,0xff,0x01,0x40,0x66,0x33,0xf6,0xbe,0x00,0x06,0x50,0xe8,0x61, +/*00009fd0:*/0xf5,0x8b,0xc2,0x33,0xd2,0xb9,0x08,0x00,0xf7,0xf1,0x8b,0xc8,0x8b,0xd8,0xd1,0xeb, +/*00009fe0:*/0x49,0x58,0x0b,0xf1,0x41,0x3b,0xc1,0x72,0x04,0x81,0xe6,0xff,0xfd,0x50,0xb0,0x09, +/*00009ff0:*/0xe8,0xae,0xc7,0x24,0xf0,0x8a,0xe0,0xb0,0x09,0xe8,0xb9,0xc7,0x58,0x3b,0xc3,0x76, +/*0000a000:*/0x1b,0x3b,0xc1,0x74,0x17,0x50,0xb0,0x09,0xe8,0x96,0xc7,0x24,0xf0,0xe8,0x6f,0xbf, +/*0000a010:*/0x74,0x02,0x0c,0x01,0x8a,0xe0,0xb0,0x09,0xe8,0x9a,0xc7,0x58,0x50,0x51,0xb1,0x00, +/*0000a020:*/0xb0,0x09,0xe8,0x7c,0xc7,0x24,0xf0,0x0a,0xc1,0x8a,0xe0,0xb0,0x09,0xe8,0x85,0xc7, +/*0000a030:*/0x59,0x58,0xba,0x00,0x10,0xf7,0xe2,0xf7,0xf1,0xd1,0xe2,0x83,0xfa,0x00,0x74,0x01, +/*0000a040:*/0x40,0x66,0xc1,0xc6,0x10,0x8b,0xf0,0x83,0xc6,0x04,0x3d,0x80,0x04,0x72,0x06,0x3d, +/*0000a050:*/0x00,0x07,0x77,0x01,0x4e,0x51,0xbb,0x32,0x93,0x2e,0x8b,0x1f,0xb9,0x0b,0x00,0xd3, +/*0000a060:*/0xeb,0xf7,0xc3,0x04,0x00,0x75,0x07,0x83,0xe3,0x03,0x03,0xf3,0xeb,0x05,0x83,0xe3, +/*0000a070:*/0x03,0x2b,0xf3,0x59,0xe8,0x2e,0xb6,0xb8,0x8c,0x02,0xe8,0x09,0xb8,0xb2,0x04,0x66, +/*0000a080:*/0x8b,0xc6,0x66,0xef,0xe8,0xa6,0x00,0x25,0xff,0x0f,0x40,0x66,0x33,0xf6,0xbe,0x00, +/*0000a090:*/0x06,0x50,0xe8,0xae,0xf4,0x8b,0xca,0x49,0x58,0x66,0xc1,0xc6,0x10,0x66,0x51,0x66, +/*0000a0a0:*/0x0f,0xb7,0xc9,0x66,0xc1,0xe1,0x0c,0x66,0x0b,0xf1,0x66,0x59,0x41,0x3b,0xc1,0x72, +/*0000a0b0:*/0x07,0x66,0x81,0xe6,0xff,0xff,0xff,0xfd,0xba,0x00,0x10,0xf7,0xe2,0xf7,0xf1,0xd1, +/*0000a0c0:*/0xe2,0x3b,0xd1,0x72,0x01,0x40,0x66,0x25,0xff,0x0f,0x00,0x00,0x66,0x0b,0xf0,0x8b, +/*0000a0d0:*/0xc6,0x25,0xff,0x0f,0xc1,0xe8,0x09,0x03,0xf0,0x51,0xbb,0x32,0x93,0x2e,0x8b,0x1f, +/*0000a0e0:*/0xb9,0x08,0x00,0xd3,0xeb,0xf7,0xc3,0x04,0x00,0x75,0x07,0x83,0xe3,0x03,0x03,0xf3, +/*0000a0f0:*/0xeb,0x05,0x83,0xe3,0x03,0x2b,0xf3,0x59,0xe8,0xaa,0xb5,0xb8,0x90,0x02,0xe8,0x85, +/*0000a100:*/0xb7,0xb2,0x04,0x66,0x8b,0xc6,0x66,0xef,0x5a,0x59,0x5b,0x66,0x58,0x66,0x5e,0xc3, +/*0000a110:*/0x52,0x66,0x50,0xe8,0x8f,0xb5,0xb8,0x00,0x02,0xe8,0x2f,0xbe,0x72,0x03,0xb8,0x50, +/*0000a120:*/0x02,0xe8,0x62,0xb7,0xb2,0x06,0xed,0x92,0x66,0x58,0x92,0x5a,0xc3,0x52,0x66,0x50, +/*0000a130:*/0xe8,0x72,0xb5,0xb8,0x08,0x02,0xe8,0x12,0xbe,0x72,0x03,0xb8,0x54,0x02,0xe8,0x45, +/*0000a140:*/0xb7,0xb2,0x06,0xed,0x92,0x66,0x58,0x92,0x5a,0xc3,0x22,0xf0,0xdd,0x12,0x01,0x07, +/*0000a150:*/0xff,0xff,0xff,0xff,0x24,0x4d,0x3f,0x4c,0x01,0x28,0x24,0x4d,0x39,0x4c,0x01,0x00, +/*0000a160:*/0xff,0xff,0xff,0xff,0x00,0x00,0x31,0x43,0x4f,0x44,0x55,0x8b,0xec,0x83,0xc4,0xfe, +/*0000a170:*/0xe8,0x32,0xb5,0xb2,0x53,0xec,0x0c,0x04,0xee,0xbb,0x88,0x01,0xe8,0x77,0xb6,0x88, +/*0000a180:*/0x46,0xff,0x24,0xf7,0xe8,0xca,0xb5,0xe8,0x8f,0x00,0x74,0x15,0xbb,0x7c,0x01,0xe8, +/*0000a190:*/0x03,0x01,0xe8,0x84,0x00,0x74,0x0a,0x32,0xc0,0xbb,0x40,0x01,0xe8,0xa8,0xb5,0xeb, +/*0000a1a0:*/0x09,0xbb,0x41,0x01,0xe8,0x0d,0x01,0x50,0x33,0xc0,0x5a,0x02,0xc2,0xb2,0x02,0xf6, +/*0000a1b0:*/0xe2,0xc1,0xe0,0x04,0xe8,0xee,0xb4,0xb2,0xfa,0xe8,0xc6,0xb4,0xbb,0x40,0x01,0xe8, +/*0000a1c0:*/0x34,0xb6,0x32,0xe4,0x0a,0xc0,0x74,0x0b,0xb4,0x02,0xe8,0x1f,0xb6,0x0a,0xc0,0x74, +/*0000a1d0:*/0x02,0xb4,0x01,0xe8,0x11,0xb6,0x24,0xf8,0x0a,0xc4,0xe8,0x65,0xb5,0xbb,0x40,0x01, +/*0000a1e0:*/0xe8,0x04,0xb6,0xa8,0x08,0x74,0x1a,0xbb,0x7c,0x01,0xe8,0x04,0xb6,0x24,0x7f,0xe8, +/*0000a1f0:*/0x5a,0xb5,0xbb,0x88,0x01,0xe8,0xf4,0xb5,0x24,0xf7,0xe8,0x4a,0xb5,0x80,0x66,0xff, +/*0000a200:*/0xf7,0xbb,0x88,0x01,0x8a,0x46,0xff,0xe8,0x47,0xb5,0xb2,0x53,0xec,0x24,0xfb,0x0c, +/*0000a210:*/0x02,0xee,0xe8,0xd4,0xcd,0x8b,0xe5,0x5d,0xc3,0xb2,0x00,0x66,0xb8,0x00,0x00,0x00, +/*0000a220:*/0x80,0x66,0xef,0xb2,0x04,0x66,0xb8,0xaa,0xaa,0xaa,0xaa,0x66,0xef,0x66,0xed,0x66, +/*0000a230:*/0x3d,0xaa,0xaa,0xaa,0xaa,0x75,0x5d,0x66,0xb8,0x55,0x55,0x55,0x55,0x66,0xef,0x66, +/*0000a240:*/0xed,0x66,0x3d,0x55,0x55,0x55,0x55,0x75,0x4b,0xb2,0x00,0x66,0xb8,0x04,0x00,0x00, +/*0000a250:*/0x80,0x66,0xef,0xb2,0x04,0x66,0xb8,0xaa,0xaa,0xaa,0xaa,0x66,0xef,0x66,0xed,0x66, +/*0000a260:*/0x3d,0xaa,0xaa,0xaa,0xaa,0x75,0x10,0x66,0xb8,0x55,0x55,0x55,0x55,0x66,0xef,0x66, +/*0000a270:*/0xed,0x66,0x3d,0x55,0x55,0x55,0x55,0x74,0x1b,0x53,0xbb,0x40,0x01,0xe8,0x67,0xb5, +/*0000a280:*/0x34,0x08,0xa8,0x08,0x74,0x06,0xe8,0xb9,0xb4,0x5b,0xeb,0x8d,0x24,0xf7,0xe8,0xb1, +/*0000a290:*/0xb4,0x5b,0xa8,0x08,0xc3,0xe8,0x5e,0xb5,0x24,0x1f,0xe8,0xb4,0xb4,0x66,0x50,0x51, +/*0000a2a0:*/0xb0,0x10,0xe8,0xd8,0xc4,0x66,0x25,0xff,0xf7,0xff,0xf7,0xb5,0x10,0xe8,0xb0,0xc4, +/*0000a2b0:*/0x59,0x66,0x58,0xc3,0x55,0x53,0x8b,0xec,0x66,0x57,0x56,0xbe,0xbb,0x03,0x33,0xc9, +/*0000a2c0:*/0x2e,0x8a,0x0c,0x0a,0xc9,0x75,0x03,0xe9,0xc9,0x00,0x46,0x2e,0x8a,0x04,0x46,0x51, +/*0000a2d0:*/0x8b,0x5e,0x00,0x8a,0xcb,0x80,0xe1,0x03,0x80,0xe3,0xfc,0xe8,0x61,0xb4,0xbb,0x40, +/*0000a2e0:*/0x01,0xe8,0x03,0xb5,0x59,0xa8,0x08,0x74,0x02,0xd1,0xe9,0xe8,0x35,0xc7,0x66,0xbb, +/*0000a2f0:*/0xaa,0xaa,0xaa,0xaa,0x66,0xbf,0x00,0x00,0x00,0x80,0x51,0x51,0x57,0x66,0x53,0xb9, +/*0000a300:*/0x00,0x01,0xb2,0x00,0x66,0x8b,0xc7,0x66,0xef,0xb2,0x04,0x66,0x8b,0xc3,0x66,0xef, +/*0000a310:*/0x83,0xc7,0x04,0x66,0x81,0xc3,0x11,0x11,0x00,0x00,0xe2,0xe6,0x66,0x5b,0x5f,0x59, +/*0000a320:*/0x66,0x81,0xc7,0x00,0x00,0x20,0x00,0x66,0x81,0xc3,0x11,0x11,0x11,0x11,0xe2,0xcb, +/*0000a330:*/0x59,0x66,0xbb,0xaa,0xaa,0xaa,0xaa,0x66,0xbf,0x00,0x00,0x00,0x80,0x51,0x57,0x66, +/*0000a340:*/0x53,0xb9,0x00,0x01,0xb2,0x00,0x66,0x8b,0xc7,0x66,0xef,0xb2,0x04,0x66,0xed,0x66, +/*0000a350:*/0x3b,0xc3,0x74,0x07,0x66,0x5b,0x5f,0x59,0xe9,0x65,0xff,0x83,0xc7,0x04,0x66,0x81, +/*0000a360:*/0xc3,0x11,0x11,0x00,0x00,0xe2,0xdd,0x66,0x5b,0x5f,0x59,0x66,0x81,0xc7,0x00,0x00, +/*0000a370:*/0x20,0x00,0x66,0x81,0xc3,0x11,0x11,0x11,0x11,0xe2,0xc2,0x51,0xbb,0x40,0x01,0xe8, +/*0000a380:*/0x65,0xb4,0xa8,0x08,0x74,0x08,0x2e,0x8a,0x44,0xfe,0xd0,0xe8,0xeb,0x04,0x2e,0x8a, +/*0000a390:*/0x44,0xfe,0x59,0x5e,0x66,0x5f,0x5b,0x5d,0xc3,0xb8,0x03,0x00,0xcd,0x6d,0xc3,0x90, +/*0000a3a0:*/0x31,0x49,0x4e,0x49,0x3f,0x3f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000a9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aa90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aaa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aaf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ab90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000abb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000abc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000abd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000abe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000abf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ac90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000acb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000acc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000acd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ace0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000acf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ad90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ada0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000adb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000adc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000add0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ade0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000adf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ae90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aeb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000af90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000afa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000afb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000afc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000afd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000afe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000aff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000b9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ba90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000baa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000baf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bcf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bdf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000be90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000beb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bf90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bfe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000bff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000c9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ca90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000caa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000caf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ccb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ccc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ccd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ccf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cdb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cdc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cdd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cdf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ce90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ceb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ced0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cf90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cfa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cfb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cfc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cfd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cfe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000cff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000d9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000da90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000daa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000daf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000db90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dcb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dcc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dcd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dcf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ddb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ddc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ddd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ddf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000de90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000deb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ded0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000def0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000df90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dfa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dfb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dfc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dfd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dfe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000dff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000e9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ea90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eaa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ead0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eaf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ebf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ec90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ece0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ecf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ed90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ede0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000edf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ee90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eeb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ef90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000efe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000eff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f000:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f010:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f020:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f030:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f040:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f050:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f060:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f070:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f080:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f090:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f0f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f100:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f110:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f120:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f130:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f140:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f150:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f160:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f170:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f180:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f190:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f1f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f200:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f210:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f220:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f230:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f240:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f250:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f260:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f270:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f280:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f290:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f2f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f300:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f310:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f320:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f330:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f340:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f350:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f360:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f370:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f380:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f390:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f3f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f400:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f410:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f420:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f430:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f440:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f450:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f460:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f470:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f480:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f490:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f4f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f500:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f510:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f520:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f530:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f540:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f550:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f560:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f570:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f580:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f590:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f5f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f600:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f610:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f620:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f630:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f640:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f650:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f660:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f670:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f680:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f690:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f6f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f700:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f710:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f720:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f730:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f740:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f750:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f760:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f770:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f780:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f790:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f7f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f800:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f810:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f820:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f830:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f840:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f850:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f860:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f870:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f880:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f890:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f8f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f900:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f910:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f920:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f930:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f940:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f950:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f960:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f970:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f980:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f990:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9a0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9b0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9c0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9d0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9e0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000f9f0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fa90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000faa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fab0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fac0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fad0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fae0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000faf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fb90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fba0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fbf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fc90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fca0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fce0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fcf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fd90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fda0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fde0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fdf0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fe90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fea0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000feb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fec0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fed0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fee0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fef0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff00:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff10:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff20:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff30:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff40:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff50:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff60:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff70:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff80:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ff90:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffa0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffb0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffc0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffd0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000ffe0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, +/*0000fff0:*/0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; diff --git a/Targets/Bonito2F7inch/conf/Bonito b/Targets/Bonito2F7inch/conf/Bonito new file mode 100644 index 00000000..58445dd3 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Bonito @@ -0,0 +1,183 @@ +#$Id: Bonito,v 1.1.1.1 2006/03/10 03:27:14 cpu Exp $ +# +# GENERIC configuration for Galileo EV64240 +# +# This file is supposed to be included by target file after +# endian has been defined. +# +machine Bonito2F7inch mips # CPU Architecture, Platform +config pmon + +# +# Define target endian +# +makeoptions ENDIAN=EL # Little endian version. + + +include "conf/GENERIC_ALL" + +# +# Platform options +# +option BONITOEL +option MIPS +option INET +#option GODSONEV1 # GALILEO GT64240 Host Bridge +#select vt82c686 #via686a/b code +select cs5536 +select mod_smi712 # sm712 display card with fb support +option VGA_NO_ROM # display card has no rom +option LOONGSON2F_7INCH +option HAS_EC + +#option HAVE_FLASH # Platform has FLASH memory. +#option HAVE_NVENV # Platform has non-volatile env mem +option SPANISH +# +# Module selection. Selects pmon features +# +select mod_flash_amd # AMD flash device programming +#select mod_flash_intel # intel flash device programming +#select mod_flash_sst # sst flash device programming +select mod_flash_winbond # winbond flash device programming +select mod_debugger # Debugging module +select mod_symbols # Symbol table handling +select mod_s3load # Srecord loading +select mod_fastload # LSI Fastload +select mod_elfload # ELF loading +select kb3310 +#select mod_tod_mc146818 # Time-Of-Day clock based on MC146818 +#select logfile # Enable log file support + +select mod_uart_ns16550 # Standard UART driver +#option CONS_BAUD=B9600 +option CONS_BAUD=B115200 +select ext2 +select fat +#select mod_x86emu_int10 +select mod_framebuffer +#select mod_x86emu # X86 emulation for VGA +#vga monitor +select mod_vgacon +option NOPCINAMES # Save some space for x86emu +#option VGA_LYNX_0712 +option AUTOLOAD +#option NVRAM_IN_FLASH +# +# Functional options. +# +option NOSNOOP # Caches are no-snooping + +option HAVE_TOD # Time-Of-Day clock +# +# +option USB_OHCI_NO_ROM +#option RADEON7000 #if you have a ATI card +option SM712_GRAPHIC_CARD #if you have a siliconmotion card +#option X86_LIKE_SPACE # make pci addr == cpu addr +#option NEW_PCI_WINDOW # use 128/32/32 pci windows +#option VGA_BASE=0xba000000 +option VGA_BASE=0xb0000000 +#option DEBUG_EMU_VGA +option SMI712 +option X800x600 +option CONFIG_VIDEO_16BPP + +#behavior +option CLEAR_WHEN_BOOT +option ALL_OTHER_KEY_TO_STOP_BOOT + + +# +# System Name and Target Name +# +option SYSTYPE="\"Bonito\"" +option TARGETNAME="\"Bonito\"" + +# +# Command selection. Selects pmon commands +# +select cmd_about # Display info about PMON +select cmd_gui +select cmd_boot # Boot wrapper +select cmd_mycmd +#select cmd_newmt +select cmd_setup +#select cmd_test +select cmd_cache # Cache enabling +#select cmd_call # Call a function command +select cmd_date # Time of day command +select cmd_env # Full blown environment command set +select cmd_flash # Flash programming cmds +select cmd_hist # Command history +select cmd_ifaddr # Interface address command +select cmd_l # Disassemble +select cmd_mem # Memory manipulation commands +select cmd_more # More paginator +select cmd_mt # Simple memory test command +select cmd_misc # Reboot & Flush etc. +#select cmd_stty # TTY setings command +select cmd_tr # Host port-through command +select cmd_devls # Device list +select cmd_set # As cmd_env but not req. cmd_hist +select cmd_testdisk +# +select cmd_shell # Shell commands, vers, help, eval +# +# +select boot_menu #show boot menu +# +# Now the Machine specification +# +mainbus0 at root +localbus0 at mainbus0 +pcibr0 at mainbus0 +pci* at pcibr? +#ppb* at pci? dev ? function ? # PCI-PCI bridges +#pci* at ppb? bus ? + +#### USB +#uhci* at pci? dev ? function ? + +#### SCSI support +#siop* at pci? dev ? function ? # Symbios/NCR 53c... +#scsibus* at siop? +#sd* at scsibus? target ? lun ? +#cd* at scsibus? target ? lun ? + +#### Networking Devices +#gt0 at localbus? base 4 +#gt1 at localbus? base 5 +#gt2 at localbus? base 6 +# fxp normally only used for debugging (enable/disable both) + +#fxp0 at pci? dev ? function ? # Intel 82559 Device +#inphy* at mii? phy ? # Intel 82555 PHYs +rtl0 at pci? dev ? function ? +#rtk0 at pci? dev ? function ? +#option EPLC46 +#uhci0 at pci? dev ? function ? +ohci* at pci? dev ? function ? +usb* at usbbus ? +#ohci1 at pci? dev ? function ? + +select mod_usb +select mod_usb_storage +select mod_usb_ohci +select mod_usb_kbd +#select mod_usb_uhci + +#### IDE controllers +pciide* at pci ? dev ? function ? flags 0x0000 + +#### IDE hard drives +wd* at pciide? channel ? drive ? flags 0x0000 + +#ide_cd* at pciide? channel ? drive ? flags 0x0001 +select iso9660 + +#### Pseudo devices +pseudo-device loop 1 # network loopback +option INPUT_FROM_BOTH +option OUTPUT_TO_BOTH +option FB_MENU_NOCLOLOR diff --git a/Targets/Bonito2F7inch/conf/Bonito.2F7inch b/Targets/Bonito2F7inch/conf/Bonito.2F7inch new file mode 100644 index 00000000..01fe6836 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Bonito.2F7inch @@ -0,0 +1,183 @@ +#$Id: Bonito,v 1.1.1.1 2006/03/10 03:27:14 cpu Exp $ +# +# GENERIC configuration for Galileo EV64240 +# +# This file is supposed to be included by target file after +# endian has been defined. +# +machine Bonito2F7inch mips # CPU Architecture, Platform +config pmon + +# +# Define target endian +# +makeoptions ENDIAN=EL # Little endian version. + + +include "conf/GENERIC_ALL" + +# +# Platform options +# +option BONITOEL +option MIPS +option INET +#option GODSONEV1 # GALILEO GT64240 Host Bridge +#select vt82c686 #via686a/b code +select cs5536 +select mod_smi712 # sm712 display card with fb support +option VGA_NO_ROM # display card has no rom +option LOONGSON2F_7INCH +option HAS_EC + +#option HAVE_FLASH # Platform has FLASH memory. +#option HAVE_NVENV # Platform has non-volatile env mem +option SPANISH +# +# Module selection. Selects pmon features +# +select mod_flash_amd # AMD flash device programming +#select mod_flash_intel # intel flash device programming +#select mod_flash_sst # sst flash device programming +select mod_flash_winbond # winbond flash device programming +select mod_debugger # Debugging module +select mod_symbols # Symbol table handling +select mod_s3load # Srecord loading +select mod_fastload # LSI Fastload +select mod_elfload # ELF loading +select kb3310 +#select mod_tod_mc146818 # Time-Of-Day clock based on MC146818 +#select logfile # Enable log file support + +select mod_uart_ns16550 # Standard UART driver +#option CONS_BAUD=B9600 +option CONS_BAUD=B115200 +select ext2 +select fat +#select mod_x86emu_int10 +select mod_framebuffer +#select mod_x86emu # X86 emulation for VGA +#vga monitor +select mod_vgacon +option NOPCINAMES # Save some space for x86emu +#option VGA_LYNX_0712 +option AUTOLOAD +#option NVRAM_IN_FLASH +# +# Functional options. +# +option NOSNOOP # Caches are no-snooping + +option HAVE_TOD # Time-Of-Day clock +# +# +option USB_OHCI_NO_ROM +#option RADEON7000 #if you have a ATI card +option SM712_GRAPHIC_CARD #if you have a siliconmotion card +#option X86_LIKE_SPACE # make pci addr == cpu addr +#option NEW_PCI_WINDOW # use 128/32/32 pci windows +#option VGA_BASE=0xba000000 +option VGA_BASE=0xb0000000 +#option DEBUG_EMU_VGA +option SMI712 +option X800x600 +option CONFIG_VIDEO_16BPP + +#behavior +option CLEAR_WHEN_BOOT +option ALL_OTHER_KEY_TO_STOP_BOOT + + +# +# System Name and Target Name +# +option SYSTYPE="\"Bonito\"" +option TARGETNAME="\"Bonito\"" + +# +# Command selection. Selects pmon commands +# +select cmd_about # Display info about PMON +select cmd_gui +select cmd_boot # Boot wrapper +select cmd_mycmd +#select cmd_newmt +select cmd_setup +#select cmd_test +select cmd_cache # Cache enabling +#select cmd_call # Call a function command +select cmd_date # Time of day command +select cmd_env # Full blown environment command set +select cmd_flash # Flash programming cmds +select cmd_hist # Command history +select cmd_ifaddr # Interface address command +select cmd_l # Disassemble +select cmd_mem # Memory manipulation commands +select cmd_more # More paginator +select cmd_mt # Simple memory test command +select cmd_misc # Reboot & Flush etc. +#select cmd_stty # TTY setings command +select cmd_tr # Host port-through command +select cmd_devls # Device list +select cmd_set # As cmd_env but not req. cmd_hist +select cmd_testdisk +# +select cmd_shell # Shell commands, vers, help, eval +# +# +select boot_menu #show boot menu +# +# Now the Machine specification +# +mainbus0 at root +localbus0 at mainbus0 +pcibr0 at mainbus0 +pci* at pcibr? +#ppb* at pci? dev ? function ? # PCI-PCI bridges +#pci* at ppb? bus ? + +#### USB +#uhci* at pci? dev ? function ? + +#### SCSI support +#siop* at pci? dev ? function ? # Symbios/NCR 53c... +#scsibus* at siop? +#sd* at scsibus? target ? lun ? +#cd* at scsibus? target ? lun ? + +#### Networking Devices +#gt0 at localbus? base 4 +#gt1 at localbus? base 5 +#gt2 at localbus? base 6 +# fxp normally only used for debugging (enable/disable both) + +#fxp0 at pci? dev ? function ? # Intel 82559 Device +#inphy* at mii? phy ? # Intel 82555 PHYs +rtl0 at pci? dev ? function ? +#rtk0 at pci? dev ? function ? +#option EPLC46 +#uhci0 at pci? dev ? function ? +ohci* at pci? dev ? function ? +usb* at usbbus ? +#ohci1 at pci? dev ? function ? + +select mod_usb +select mod_usb_storage +select mod_usb_ohci +select mod_usb_kbd +#select mod_usb_uhci + +#### IDE controllers +pciide* at pci ? dev ? function ? flags 0x0000 + +#### IDE hard drives +wd* at pciide? channel ? drive ? flags 0x0000 + +#ide_cd* at pciide? channel ? drive ? flags 0x0001 +select iso9660 + +#### Pseudo devices +pseudo-device loop 1 # network loopback +option INPUT_FROM_BOTH +option OUTPUT_TO_BOTH + diff --git a/Targets/Bonito2F7inch/conf/Bonito.box b/Targets/Bonito2F7inch/conf/Bonito.box new file mode 100644 index 00000000..72216d05 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Bonito.box @@ -0,0 +1,171 @@ +# $Id: Bonito,v 1.1.1.1 2006/03/10 03:27:14 cpu Exp $ +# +# GENERIC configuration for Galileo EV64240 +# +# This file is supposed to be included by target file after +# endian has been defined. +# +machine Bonito2F7inch mips # CPU Architecture, Platform +config pmon + +# +# Define target endian +# +makeoptions ENDIAN=EL # Little endian version. + + +include "conf/GENERIC_ALL" + +# +# Platform options +# +option BONITOEL +option MIPS +option INET +#option GODSONEV1 # GALILEO GT64240 Host Bridge +#select vt82c686 #via686a/b code +select cs5536 +option VGA_NO_ROM # display card has no rom +option LOONGSON2F_7INCH + +#option HAVE_FLASH # Platform has FLASH memory. +#option HAVE_NVENV # Platform has non-volatile env mem + +# +# Module selection. Selects pmon features +# +select mod_flash_amd # AMD flash device programming +#select mod_flash_intel # intel flash device programming +#select mod_flash_sst # sst flash device programming +select mod_flash_winbond # winbond flash device programming +select mod_debugger # Debugging module +select mod_symbols # Symbol table handling +select mod_s3load # Srecord loading +select mod_fastload # LSI Fastload +select mod_elfload # ELF loading +#select mod_tod_mc146818 # Time-Of-Day clock based on MC146818 +#select logfile # Enable log file support + +select mod_uart_ns16550 # Standard UART driver +#option CONS_BAUD=B9600 +option CONS_BAUD=B115200 +select ext2 +select fat +#select mod_x86emu_int10 +#select mod_framebuffer +select mod_x86emu # X86 emulation for VGA +#vga monitor +select mod_vgacon +option NOPCINAMES # Save some space for x86emu +#option VGA_LYNX_0712 +option AUTOLOAD +#option NVRAM_IN_FLASH +# +# Functional options. +# +option NOSNOOP # Caches are no-snooping + +# +# +option USB_OHCI_NO_ROM +option RADEON7000 +#option X86_LIKE_SPACE # make pci addr == cpu addr +#option NEW_PCI_WINDOW # use 128/32/32 pci windows +#option VGA_BASE=0xba000000 +option VGA_BASE=0xb0000000 +#option DEBUG_EMU_VGA + +#behavior +option CLEAR_WHEN_BOOT +option ALL_OTHER_KEY_TO_STOP_BOOT + + +# +# System Name and Target Name +# +option SYSTYPE="\"Bonito\"" +option TARGETNAME="\"Bonito\"" + +# +# Command selection. Selects pmon commands +# +select cmd_about # Display info about PMON +select cmd_gui +select cmd_boot # Boot wrapper +select cmd_mycmd +select cmd_newmt +select cmd_test +select cmd_cache # Cache enabling +#select cmd_call # Call a function command +select cmd_date # Time of day command +select cmd_env # Full blown environment command set +select cmd_flash # Flash programming cmds +select cmd_hist # Command history +select cmd_ifaddr # Interface address command +select cmd_l # Disassemble +select cmd_mem # Memory manipulation commands +select cmd_more # More paginator +select cmd_mt # Simple memory test command +select cmd_misc # Reboot & Flush etc. +#select cmd_stty # TTY setings command +select cmd_tr # Host port-through command +select cmd_devls # Device list +select cmd_set # As cmd_env but not req. cmd_hist +select cmd_testdisk +# +select cmd_shell # Shell commands, vers, help, eval +# +# + +# +# Now the Machine specification +# +mainbus0 at root +localbus0 at mainbus0 +pcibr0 at mainbus0 +pci* at pcibr? +#ppb* at pci? dev ? function ? # PCI-PCI bridges +#pci* at ppb? bus ? + +#### USB +#uhci* at pci? dev ? function ? + +#### SCSI support +#siop* at pci? dev ? function ? # Symbios/NCR 53c... +#scsibus* at siop? +#sd* at scsibus? target ? lun ? +#cd* at scsibus? target ? lun ? + +#### Networking Devices +#gt0 at localbus? base 4 +#gt1 at localbus? base 5 +#gt2 at localbus? base 6 +# fxp normally only used for debugging (enable/disable both) + +#fxp0 at pci? dev ? function ? # Intel 82559 Device +#inphy* at mii? phy ? # Intel 82555 PHYs +rtl0 at pci? dev ? function ? +rtk0 at pci? dev ? function ? +#option EPLC46 +#uhci0 at pci? dev ? function ? +ohci0 at pci? dev ? function ? +#usb0 at usbbus ? +#ohci1 at pci? dev ? function ? + +select mod_usb +select mod_usb_storage +select mod_usb_ohci +select mod_usb_kbd +#select mod_usb_uhci + +#### IDE controllers +pciide* at pci ? dev ? function ? flags 0x0000 + +#### IDE hard drives +wd* at pciide? channel ? drive ? flags 0x0000 + +ide_cd* at pciide? channel ? drive ? flags 0x0001 +select iso9660 + +#### Pseudo devices +pseudo-device loop 1 # network loopback diff --git a/Targets/Bonito2F7inch/conf/Bonito.notebook b/Targets/Bonito2F7inch/conf/Bonito.notebook new file mode 100644 index 00000000..da641ea4 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Bonito.notebook @@ -0,0 +1,168 @@ +# $Id: Bonito,v 1.1.1.1 2006/03/10 03:27:14 cpu Exp $ +# +# GENERIC configuration for Galileo EV64240 +# +# This file is supposed to be included by target file after +# endian has been defined. +# +machine Bonito mips # CPU Architecture, Platform +config pmon + +# +# Define target endian +# +makeoptions ENDIAN=EL # Little endian version. + + +include "conf/GENERIC_ALL" + +# +# Platform options +# +option BONITOEL +option MIPS +option INET +#option GODSONEV1 # GALILEO GT64240 Host Bridge +select vt82c686 #via686a/b code + +#option HAVE_FLASH # Platform has FLASH memory. +#option HAVE_NVENV # Platform has non-volatile env mem + +#option ALL_OTHER_KEY_TO_STOP_BOOT +#option CLEAR_WHEN_BOOT +option ESC_KEY_STOP_BOOT +option HAVE_NB_SERIAL + +# +# Module selection. Selects pmon features +# +select mod_flash_amd # AMD flash device programming +#select mod_flash_intel # intel flash device programming +#select mod_flash_sst # sst flash device programming +select mod_flash_winbond # winbond flash device programming +select mod_debugger # Debugging module +select mod_symbols # Symbol table handling +select mod_s3load # Srecord loading +select mod_fastload # LSI Fastload +select mod_elfload # ELF loading +#select mod_tod_mc146818 # Time-Of-Day clock based on MC146818 +#select logfile # Enable log file support + +select mod_uart_ns16550 # Standard UART driver +#option CONS_BAUD=B9600 +option CONS_BAUD=B115200 +select ext2 +#select mod_x86emu_int10 +select mod_framebuffer +#select mod_x86emu # X86 emulation for VGA +#vga monitor +select mod_vgacon +option NOPCINAMES # Save some space for x86emu +#option VGA_LYNX_0712 +option AUTOLOAD +#option NVRAM_IN_FLASH +# +# Functional options. +# +option NOSNOOP # Caches are no-snooping + +# +# +option USB_OHCI_NO_ROM +option RADEON7000 +#option VGA_NOTEBOOK_V1 # use for notebook version 1 vga init +option VGA_NOTEBOOK_V2 # use for notebook version 2 vga init +#option X86_LIKE_SPACE # make pci addr == cpu addr +#option NEW_PCI_WINDOW # use 128/32/32 pci windows +#option VGA_BASE=0xba000000 +option VGA_BASE=0xb0000000 +#option DEBUG_EMU_VGA + + +# +# System Name and Target Name +# +option SYSTYPE="\"Bonito\"" +option TARGETNAME="\"Bonito\"" + +# +# Command selection. Selects pmon commands +# +select cmd_about # Display info about PMON +select cmd_gui +select cmd_boot # Boot wrapper +select cmd_mycmd +select cmd_newmt +select cmd_test +select cmd_cache # Cache enabling +#select cmd_call # Call a function command +select cmd_date # Time of day command +select cmd_env # Full blown environment command set +select cmd_flash # Flash programming cmds +select cmd_hist # Command history +select cmd_ifaddr # Interface address command +select cmd_l # Disassemble +select cmd_mem # Memory manipulation commands +select cmd_more # More paginator +select cmd_mt # Simple memory test command +select cmd_misc # Reboot & Flush etc. +#select cmd_stty # TTY setings command +select cmd_tr # Host port-through command +select cmd_devls # Device list +select cmd_set # As cmd_env but not req. cmd_hist +select cmd_testdisk +# +select cmd_shell # Shell commands, vers, help, eval +# +# + +# +# Now the Machine specification +# +mainbus0 at root +localbus0 at mainbus0 +pcibr0 at mainbus0 +pci* at pcibr? +#ppb* at pci? dev ? function ? # PCI-PCI bridges +#pci* at ppb? bus ? + +#### USB +#uhci* at pci? dev ? function ? + +#### SCSI support +#siop* at pci? dev ? function ? # Symbios/NCR 53c... +#scsibus* at siop? +#sd* at scsibus? target ? lun ? +#cd* at scsibus? target ? lun ? + +#### Networking Devices +#gt0 at localbus? base 4 +#gt1 at localbus? base 5 +#gt2 at localbus? base 6 +# fxp normally only used for debugging (enable/disable both) + +#fxp0 at pci? dev ? function ? # Intel 82559 Device +#inphy* at mii? phy ? # Intel 82555 PHYs +rtl0 at pci? dev ? function ? +uhci0 at pci? dev ? function ? +ohci0 at pci? dev ? function ? +usb0 at usbbus ? +#ohci1 at pci? dev ? function ? + +select mod_usb +select mod_usb_storage +select mod_usb_ohci +select mod_usb_kbd +select mod_usb_uhci + +#### IDE controllers +pciide* at pci ? dev ? function ? flags 0x0000 + +#### IDE hard drives +wd* at pciide? channel ? drive ? flags 0x0000 + +ide_cd* at pciide? channel ? drive ? flags 0x0001 +select iso9660 + +#### Pseudo devices +pseudo-device loop 1 # network loopback diff --git a/Targets/Bonito2F7inch/conf/Makefile.Bonito b/Targets/Bonito2F7inch/conf/Makefile.Bonito new file mode 100644 index 00000000..7c9b370f --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Makefile.Bonito @@ -0,0 +1,211 @@ +# $Id: Makefile.Bonito,v 1.1.1.1 2006/06/29 06:43:25 cpu Exp $ +# +# Makefile for PMON2000 EV64240 +# +# This makefile is constructed from a machine description: +# config machineid +# Most changes should be made in the machine description +# /sys/arch/pmonppc/conf/``machineid'' +# after which you should do +# config machineid +# Machine generic makefile changes should be made in +# /sys/arch/pmonppc/conf/Makefile.pmonppc +# after which config should be rerun for all machines of that type. +# +# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE +# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING +# +.SUFFIXES: .S .c .o + +CROSS_COMPILE =mips-elf- +#CROSS_COMPILE =mipsel-linux- + +# +# Include the make variables (CC, etc...) +# + +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +RANLIB = $(CROSS_COMPILE)ranlib +SIZE = $(CROSS_COMPILE)size + +OPT?= -O2 + +all: pmon + +# source tree is located via $S relative to the compilation directory +ifndef S +S:=$(shell cd ../../../..; pwd) +endif + +# Defines + +TARGET= ${S}/Targets/Bonito +MACHINE=mips +MACHINE_ARCH=mips +COMPILEDIR=${shell pwd} +OBJDIR=${COMPILEDIR} +PMONDIR=${S} + + +INCLUDES= -I. -I${S}/include -I./machine -I${S} \ + -I${S}/x86emu/int10/x86emu/include -I${S}/x86emu/int10/x86emu/src/x86emu/x86emu \ + -I${S}/sys/arch/${MACHINE}/include -I${S}/sys \ + -I${TARGET} -I${COMPILEDIR} -nostdinc -I${S}/x86emu/src/x86emu -I${S}/x86emu/src/x86emu/include +#CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ +# -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 +CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ + -${ENDIAN} -mno-abicalls -mips3 -mmemcpy -mcpu=r4000 +#CWARNFLAGS= -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes \ + -Wno-uninitialized -Wno-format -Wno-main +CWARNFLAGS= -Wall -Wstrict-prototypes \ + -Wno-uninitialized -Wno-format -Wno-main +CFLAGS= ${DEBUG} ${CWARNFLAGS} ${OPT} -G 0 +AFLAGS= -D_LOCORE -G 0 +LFLAGS= -${ENDIAN} -N -G 0 -T../../conf/ld.script -e start +STRIPFLAGS= -g -S --strip-debug + +HOSTCC?= ${CC} +HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//} +HOSTED_CFLAGS= ${CFLAGS} + +include ${S}/lib/libc/Makefile.inc +LIBC=${CLIB} + +# compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} +# where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix, +# capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file +# is marked as config-dependent. + +USRLAND_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +USRLAND_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +NORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +NORMAL_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +DRIVER_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +DRIVER_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $< +NORMAL_S_C= ${AS} ${COPTS} ${PARAM} $< -o $@ + + +%OBJS + +%CFILES + +%SFILES + +# load lines for config "xxx" will be emitted as: +# xxx: ${SYSTEM_DEP} +# ${SYSTEM_LD_HEAD} +# ${SYSTEM_LD} +# ${SYSTEM_LD_TAIL} +SYSTEM_OBJ= start.o crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} \ + crtend.o +SYSTEM_DEP= Makefile ${SYSTEM_OBJ} +SYSTEM_LD_HEAD= rm -f $@ +SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '$${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o +SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ ; \ + ${OBJCOPY} -O binary $@ $@.bin + +DEBUG?= +ifeq (${DEBUG}, "-g") +LFLAGS+= -X +SYSTEM_LD_TAIL+=; \ + echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ + echo ${STRIP} ${STRIPFLAGS} $@; ${STRIP} ${STRIPFLAGS} $@ +else +LFLAGS+= -S +endif + +%LOAD + +param.c: $S/sys/kern/param.c + rm -f param.c + cp $S/sys/kern/param.c . + +param.o: param.c Makefile + ${NORMAL_C_C} + +ioconf.o: ioconf.c + ${NORMAL_C} +ri.o:ri.c Makefile + ${NORMAL_C_C} +ri.c: $S/pmon/arch/mips/ri.c + rm -f ri.c + cp $S/pmon/arch/mips/ri.c . +crtbegin.c: $S/pmon/arch/mips/crtbegin.c + rm -f crtbegin.c + cp $S/pmon/arch/mips/crtbegin.c . + +crtbegin.o: crtbegin.c Makefile + ${NORMAL_C_C} + +crtend.c: $S/pmon/arch/mips/crtend.c + rm -f crtend.c + cp $S/pmon/arch/mips/crtend.c . + +crtend.o: crtend.c Makefile + ${NORMAL_C_C} + +newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} + sh $S/conf/newvers.sh + ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c + +clean:: + rm -f eddep *netbsd netbsd.gdb tags *.[io] [a-z]*.s \ + [Ee]rrs linterrs makelinks genassym genassym.o + +lint: + @lint -hbxncez -DGENERIC -Dvolatile= ${CPPFLAGS} -UKGDB \ + ${CFILES} \ + ioconf.c param.c | \ + grep -v 'static function .* unused' + +tags: + @echo "see $S/kern/Makefile for tags" + +links: + egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ + sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink + echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ + sort -u | comm -23 - dontlink | \ + sed 's,../.*/\(.*.o\),rm -f \1; ln -s ../GENERIC/\1 \1,' > makelinks + sh makelinks && rm -f dontlink + +SRCS= ${TARGET}/Bonito/start.S \ + param.c ioconf.c ri.c ${CFILES} ${SFILES} +depend:: .depend +.depend: ${SRCS} param.c + ${MKDEP} ${AFLAGS} ${CPPFLAGS} ${TARGET}/Bonito/start.S + ${MKDEP} -a ${CFLAGS} ${CPPFLAGS} param.c ioconf.c ${CFILES} +ifneq (${SFILES}, "") + ${MKDEP} -a ${AFLAGS} ${CPPFLAGS} ${SFILES} +endif + +# depend on root or device configuration +autoconf.o conf.o: Makefile + +# depend on network or filesystem configuration +uipc_proto.o vfs_conf.o: Makefile + +start.o: ${TARGET}/Bonito/start.S Makefile + ${NORMAL_S} + +zpmon: startz.o + rm start.o && cp -f startz.o start.o + make pmon + make -C ../zboot zpmon +startz.o: ${TARGET}/Bonito/startz.S Makefile + ${NORMAL_S} + +%RULES diff --git a/Targets/Bonito2F7inch/conf/Makefile.Bonito2F7inch b/Targets/Bonito2F7inch/conf/Makefile.Bonito2F7inch new file mode 100644 index 00000000..27e44310 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/Makefile.Bonito2F7inch @@ -0,0 +1,224 @@ +# $Id: Makefile.Bonito2fdev,v 1.1.1.1 2006/09/14 01:59:09 root Exp $ +# +# Makefile for PMON2000 EV64240 +# +# This makefile is constructed from a machine description: +# config machineid +# Most changes should be made in the machine description +# /sys/arch/pmonppc/conf/``machineid'' +# after which you should do +# config machineid +# Machine generic makefile changes should be made in +# /sys/arch/pmonppc/conf/Makefile.pmonppc +# after which config should be rerun for all machines of that type. +# +# N.B.: NO DEPENDENCIES ON FOLLOWING FLAGS ARE VISIBLE TO MAKEFILE +# IF YOU CHANGE THE DEFINITION OF ANY OF THESE RECOMPILE EVERYTHING +# +.SUFFIXES: .S .c .o + +#CROSS_COMPILE =mips-elf- +#CROSS_COMPILE =mipsel-linux- + +# +# Include the make variables (CC, etc...) +# + +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld -m elf32ltsmip -G 0 -static -n -nostdlib +#CC = $(CROSS_COMPILE)gcc +CPP = $(CC) -E +AR = $(CROSS_COMPILE)ar +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump +RANLIB = $(CROSS_COMPILE)ranlib +SIZE = $(CROSS_COMPILE)size + +OPT?= -O2 +IDENT:=${IDENT} $(shell echo ${IDENT}|sed -n 's/.*-DX\([0-9]\+\)x\([0-9]\+\).*/ -DFB_XSIZE=\1 -DFB_YSIZE=\2 /p') +IDENT:=${IDENT} $(shell echo ${IDENT}|sed -n 's/.*-DCONFIG_VIDEO_\([0-9]\+\)BPP.*/ -DFB_COLOR_BITS=\1 /p') + +all: pmon + +# source tree is located via $S relative to the compilation directory +ifndef S +S:=$(shell cd ../../../..; pwd) +endif + +# Defines + +TARGET= ${S}/Targets/Bonito2F7inch +SUBTARGET?=Bonito +START?=start.o +MACHINE=mips +MACHINE_ARCH=mips +COMPILEDIR=${shell pwd} +OBJDIR=${COMPILEDIR} +PMONDIR=${S} + + +INCLUDES= -I. -I${S}/include -I./machine -I${S} \ + -I${S}/sys/arch/${MACHINE}/include -I${S}/sys \ + -I${TARGET} -I${COMPILEDIR} -I${PATH1} -nostdinc -fno-strict-aliasing -fno-pic +CPPFLAGS= ${INCLUDES} ${IDENT} -D_KERNEL -D__OpenBSD__ -DPMON -D__PMON__\ + -mmemcpy -mno-abicalls -mips3 -fno-builtin#-march=r4600 +#CWARNFLAGS= -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes \ + -Wno-uninitialized -Wno-format -Wno-main +CWARNFLAGS= -Wall -Wstrict-prototypes \ + -Wno-uninitialized -Wno-format -Wno-main +CFLAGS= ${DEBUG} ${CWARNFLAGS} ${OPT} -G 0 +AFLAGS= -D_LOCORE -G 0 +LFLAGS= -N -G 0 -T../../conf/ld.script -e start +STRIPFLAGS= -g -S --strip-debug + +HOSTCC?= ${CC} +HOSTED_CPPFLAGS=${CPPFLAGS:S/^-nostdinc$//} +HOSTED_CFLAGS= ${CFLAGS} + +include ${S}/lib/libc/Makefile.inc +LIBC=${CLIB} +include ${S}/lib/libm/Makefile.inc +LIBM=${MLIB} +include ${S}/lib/libz/Makefile.inc +LIBZ=${ZLIB} + +# compile rules: rules are named ${TYPE}_${SUFFIX}${CONFIG_DEP} +# where TYPE is NORMAL, DRIVER, or PROFILE}; SUFFIX is the file suffix, +# capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file +# is marked as config-dependent. + +USRLAND_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +USRLAND_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +NORMAL_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +NORMAL_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +DRIVER_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $< +DRIVER_C_C= ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $< + +NORMAL_S= ${CC} ${AFLAGS} ${CPPFLAGS} -c $< +NORMAL_S_C= ${AS} ${COPTS} ${PARAM} $< -o $@ + + +%OBJS + +%CFILES + +%SFILES + +ifneq "$(findstring $S/x86emu/src,$(CFILES))" "" + INCLUDES += -I${S}/x86emu/src/x86emu/ -I${S}/x86emu/src/x86emu/include +else + INCLUDES += -I${S}/x86emu/int10/x86emu/include -I${S}/x86emu/int10/x86emu/src/x86emu/x86emu +endif + +# load lines for config "xxx" will be emitted as: +# xxx: ${SYSTEM_DEP} +# ${SYSTEM_LD_HEAD} +# ${SYSTEM_LD} +# ${SYSTEM_LD_TAIL} +#SYSTEM_OBJ= ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${LIBZ} \ + +SYSTEM_OBJ= ${START} crtbegin.o param.o ioconf.o ri.o ${OBJS} ${LIBC} ${LIBM} ${LIBZ} \ + crtend.o +SYSTEM_DEP= Makefile ${SYSTEM_OBJ} +SYSTEM_LD_HEAD= rm -f $@ +SYSTEM_LD= @echo ${LD} ${LFLAGS} -o $@ ${LIBDIR} '${SYSTEM_OBJ}' vers.o; \ + ${LD} ${LFLAGS} -o $@ ${LIBDIR} ${SYSTEM_OBJ} vers.o -L../../../../examples/math/ -lgcc +SYSTEM_LD_TAIL= @${SIZE} $@; chmod 755 $@ ; \ + ${OBJCOPY} -O binary $@ $@.bin + +DEBUG?= +ifneq ("${DEBUG}", "") +LFLAGS+= -X +SYSTEM_LD_TAIL+=; \ + echo cp $@ $@.gdb; rm -f $@.gdb; cp $@ $@.gdb; \ + echo ${STRIP} ${STRIPFLAGS} $@; ${STRIP} ${STRIPFLAGS} $@ +else +LFLAGS+= -S +endif + +%LOAD + +param.c: $S/sys/kern/param.c + rm -f param.c + cp $S/sys/kern/param.c . + +param.o: param.c Makefile + ${NORMAL_C_C} + +ioconf.o: ioconf.c + ${NORMAL_C} +ri.o:ri.c Makefile + ${NORMAL_C_C} +ri.c: $S/pmon/arch/mips/ri.c + rm -f ri.c + cp $S/pmon/arch/mips/ri.c . +crtbegin.c: $S/pmon/arch/mips/crtbegin.c + rm -f crtbegin.c + cp $S/pmon/arch/mips/crtbegin.c . + +crtbegin.o: crtbegin.c Makefile + ${NORMAL_C_C} + +crtend.c: $S/pmon/arch/mips/crtend.c + rm -f crtend.c + cp $S/pmon/arch/mips/crtend.c . + +crtend.o: crtend.c Makefile + ${NORMAL_C_C} + +newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP} + sh $S/conf/newvers.sh + ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c + +clean:: + rm -f eddep *netbsd netbsd.gdb tags *.[io] [a-z]*.s \ + [Ee]rrs linterrs makelinks genassym genassym.o + +lint: + @lint -hbxncez -DGENERIC -Dvolatile= ${CPPFLAGS} -UKGDB \ + ${CFILES} \ + ioconf.c param.c | \ + grep -v 'static function .* unused' + +tags: + @echo "see $S/kern/Makefile for tags" + +links: + egrep '#if' ${CFILES} | sed -f $S/conf/defines | \ + sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink + echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \ + sort -u | comm -23 - dontlink | \ + sed 's,../.*/\(.*.o\),rm -f \1; ln -s ../GENERIC/\1 \1,' > makelinks + sh makelinks && rm -f dontlink + +SRCS= ${TARGET}/${SUBTARGET}/start.S \ + param.c ioconf.c ri.c ${CFILES} ${SFILES} +depend:: .depend +.depend: ${SRCS} param.c + ${MKDEP} ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${TARGET}/${SUBTARGET}/start.S + ${MKDEP} -a ${CFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } param.c ioconf.c ${CFILES} +ifneq (${SFILES}, "") + ${MKDEP} -a ${AFLAGS} ${shell echo ${CPPFLAGS}|sed -e 's/ -f[^ ]*//g' } ${SFILES} +endif + +# depend on root or device configuration +autoconf.o conf.o: Makefile + +# depend on network or filesystem configuration +uipc_proto.o vfs_conf.o: Makefile + +${START}: ${TARGET}/${SUBTARGET}/${START:.o=.S} Makefile + ${NORMAL_S} + +zpmon: startz.o + rm start.o && cp -f startz.o start.o + make pmon + make -C ../zboot zpmon +startz.o: ${TARGET}/${SUBTARGET}/startz.S Makefile + ${NORMAL_S} + +%RULES diff --git a/Targets/Bonito2F7inch/conf/files.Bonito b/Targets/Bonito2F7inch/conf/files.Bonito new file mode 100644 index 00000000..bd442299 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/files.Bonito @@ -0,0 +1,46 @@ +# $Id: files.Bonito +# +# Bonito Target specific files +# + +file Targets/Bonito2F7inch/pci/pci_machdep.c +file Targets/Bonito2F7inch/pci/cs5536_io.c cs5536 +file Targets/Bonito2F7inch/pci/cs5536_vsm.c cs5536 +file Targets/Bonito2F7inch/Bonito/tgt_machdep.c + + +define localbus { [base = -1 ] } +device localbus +attach localbus at mainbus +file Targets/Bonito/dev/localbus.c localbus + + +# Ethernet driver for Discovery ethernet +device gt: ether, ifnet, ifmedia +attach gt at localbus +file sys/dev/ic/if_gt.c gt + +# +# Media Indepedent Interface (mii) +# +include "sys/dev/mii/files.mii" + +# Various PCI bridges + +include "sys/dev/pci/files.pci" + +# +# Machine-independent ATAPI drivers +# + +include "sys/dev/ata/files.ata" + +# +# SCSI framework +# +include "sys/scsi/files.scsi" + +# +# Custom application files +# +include "pmon/custom/files.custom" diff --git a/Targets/Bonito2F7inch/conf/files.Bonito2F7inch b/Targets/Bonito2F7inch/conf/files.Bonito2F7inch new file mode 100644 index 00000000..843ee6b9 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/files.Bonito2F7inch @@ -0,0 +1,47 @@ +# $Id: files.Bonito +# +# Bonito Target specific files +# + +file Targets/Bonito2F7inch/pci/pci_machdep.c +file Targets/Bonito2F7inch/pci/cs5536_io.c cs5536 +file Targets/Bonito2F7inch/pci/cs5536_vsm.c cs5536 +file Targets/Bonito2F7inch/pci/sys_cmd.c cs5536 +file Targets/Bonito2F7inch/Bonito/tgt_machdep.c + + +define localbus { [base = -1 ] } +device localbus +attach localbus at mainbus +file Targets/Bonito/dev/localbus.c localbus + + +# Ethernet driver for Discovery ethernet +device gt: ether, ifnet, ifmedia +attach gt at localbus +file sys/dev/ic/if_gt.c gt + +# +# Media Indepedent Interface (mii) +# +include "sys/dev/mii/files.mii" + +# Various PCI bridges + +include "sys/dev/pci/files.pci" + +# +# Machine-independent ATAPI drivers +# + +include "sys/dev/ata/files.ata" + +# +# SCSI framework +# +include "sys/scsi/files.scsi" + +# +# Custom application files +# +include "pmon/custom/files.custom" diff --git a/Targets/Bonito2F7inch/conf/ld.script b/Targets/Bonito2F7inch/conf/ld.script new file mode 100644 index 00000000..a8823cd4 --- /dev/null +++ b/Targets/Bonito2F7inch/conf/ld.script @@ -0,0 +1,91 @@ + + + +OUTPUT_FORMAT("elf32-tradlittlemips", "elf32-tradbigmips", + "elf32-tradlittlemips") +OUTPUT_ARCH(mips) +ENTRY(_start) +SECTIONS +{ + + . = 0xffffffff80010000; + .text : + { + _ftext = . ; + *(.text) + *(.rodata) + *(.rodata1) + *(.reginfo) + *(.init) + *(.stub) + + *(.gnu.warning) + } =0 + _etext = .; + PROVIDE (etext = .); + .fini : { *(.fini) } =0 + .data : + { + _fdata = . ; + *(.data) + CONSTRUCTORS + } + .data1 : { *(.data1) } + .ctors : + { + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + } + .dtors : + { + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; + } + _gp = ALIGN(16) + 0x7ff0; + .got : + { + *(.got.plt) *(.got) + } + + + + .sdata : { *(.sdata) } + .lit8 : { *(.lit8) } + .lit4 : { *(.lit4) } + _edata = .; + PROVIDE (edata = .); + __bss_start = .; + _fbss = .; + .sbss : { *(.sbss) *(.scommon) } + .bss : + { + *(.dynbss) + *(.bss) + *(COMMON) + } + _end = . ; + PROVIDE (end = .); + + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + + + + + .debug 0 : { *(.debug) } + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_sfnames 0 : { *(.debug_sfnames) } + .line 0 : { *(.line) } + + .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } + .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } +} diff --git a/Targets/Bonito2F7inch/dev/localbus.c b/Targets/Bonito2F7inch/dev/localbus.c new file mode 100644 index 00000000..0c31dfca --- /dev/null +++ b/Targets/Bonito2F7inch/dev/localbus.c @@ -0,0 +1,136 @@ +/* $Id: localbus.c,v 1.1.1.1 2006/06/29 06:43:25 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +/* + * This is the localbus driver. It handles configuration of all + * devices on the Discovery localbus. + */ + +#include +#include +#include +#include +#include +#include + +#include + +#include + +int localbusmatch __P((struct device *, void *, void *)); +void localbusattach __P((struct device *, struct device *, void *)); +int localbusprint __P((void *, const char *)); +void localbusscan __P((struct device *, void *)); + + +struct cfattach localbus_ca = { + sizeof(struct device), localbusmatch, localbusattach +}; + +struct cfdriver localbus_cd = { + NULL, "localbus", DV_DULL, 1 +}; + +int +localbusmatch(parent, match, aux) + struct device *parent; + void *match; + void *aux; +{ + return (1); +} + +int +localbusprint(aux, localbus) + void *aux; + const char *localbus; +{ +/* XXXX print flags */ + return (QUIET); +} + + +void +localbusscan(parent, match) + struct device *parent; + void *match; +{ + struct device *dev = match; + struct cfdata *cf = dev->dv_cfdata; + struct confargs lba; + bushook_t lbus; + + if (cf->cf_fstate == FSTATE_STAR) { + printf("localbus '*' devs not allowed!\n"); + free(dev, M_DEVBUF); + } + + if (cf->cf_loc[0] == -1) { + lba.ca_baseaddr = 0; + lba.ca_intr = 0; + lba.ca_nintr = 0; + } else { + lba.ca_baseaddr = cf->cf_loc[0]; + lba.ca_nintr= cf->cf_loc[1]; + lba.ca_intr = 0; + } + + lba.ca_bus = &lbus; + lba.ca_bus->bh_type = BUS_LOCAL; + lba.ca_bus->bh_matchname = NULL; + +#if 0 + lba.ca_iot = &sys_config.local; + lba.ca_memt = &sys_config.local; +#endif + + + if ((*cf->cf_attach->ca_match)(parent, dev, &lba) > 0) { + config_attach(parent, dev, &lba, localbusprint); + } + else { + free(dev, M_DEVBUF); + } +} + +void +localbusattach(parent, self, aux) + struct device *parent; + struct device *self; + void *aux; +{ + printf("\n"); + + config_scan(localbusscan, self); +} + diff --git a/Targets/Bonito2F7inch/dev/pflash_tgt.h b/Targets/Bonito2F7inch/dev/pflash_tgt.h new file mode 100644 index 00000000..7db40297 --- /dev/null +++ b/Targets/Bonito2F7inch/dev/pflash_tgt.h @@ -0,0 +1,62 @@ +/* $Id: pflash_tgt.h,v 1.2 2006/07/20 09:37:06 cpu Exp $ */ + +/* + * Copyright (c) 2000 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by + * Opsycon Open System Consulting AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +/* + * Define a 'struct fl_map' init set for each flash area on the target. + */ + +/* Note! Not requiered but prefered, sort in ascending address order */ + +/* + * NOTE about 'width' codes. Usually the 'width' is the number of + * bytes that are accessed at the same time while the next value + * is the number of chips. Bytes per chips can be found by dividing + * 'width' with 'chips'. The code 9 for width is special to handle + * how the cp7000 addresses the AMD single chip when not mapped as + * boot device. + */ + +//#define FLASH_WIDTH_IS_16 +#ifndef FLASH_WIDTH_IS_16 +#define TARGET_FLASH_DEVICES_8 \ + { 0xbfc00000, 0x00080000, 1, 1, FL_BUS_8 }, \ + { 0xbc000000, 0x02000000, 1, 1, FL_BUS_8 }, \ + { 0x00000000, 0x00000000 } +#else +#define TARGET_FLASH_DEVICES_8 \ + { 0xbfc00000, 0x00080000, 2, 1, FL_BUS_16 }, \ + { 0xbc000000, 0x02000000, 2, 1, FL_BUS_16 }, \ + { 0x00000000, 0x00000000 } +#endif + diff --git a/Targets/Bonito2F7inch/include/bonito.h b/Targets/Bonito2F7inch/include/bonito.h new file mode 100644 index 00000000..711213f9 --- /dev/null +++ b/Targets/Bonito2F7inch/include/bonito.h @@ -0,0 +1,511 @@ +/* + * Bonito Register Map + * Copyright (c) 1999 Algorithmics Ltd + * + * Algorithmics gives permission for anyone to use and modify this file + * without any obligation or license condition except that you retain + * this copyright message in any source redistribution in whole or part. + * + * Updated copies of this and other files can be found at + * ftp://ftp.algor.co.uk/pub/bonito/ + * + * Users of the Bonito controller are warmly recommended to contribute + * any useful changes back to Algorithmics (mail to + * bonito@algor.co.uk). + */ + +/* Revision 1.48 autogenerated on 08/17/99 15:20:01 */ + +#ifndef _BONITO_H_ + +#ifdef __ASSEMBLER__ +//__ASSEMBLER__ is not defined +/* offsets from base register */ +#define BONITO(x) (x) + +#else /* !__ASSEMBLER */ + +/* offsets from base pointer, this construct allows optimisation */ +/* static char * const _bonito = PA_TO_KVA1(BONITO_BASE); */ +/*#define BONITO(x) *(volatile unsigned long *)(PHYS_TO_UNCACHED(BONITO_REG_BASE)+(x))*/ +#define BONITO(x) *(volatile unsigned long *)(0xbfe00000+(x)) +#endif /* __ASSEMBLER__ */ + +#define RTC_INDEX_REG 0x70 +#define RTC_DATA_REG 0x71 +#define RTC_NVRAM_BASE 0x0e + + +#define COM1_BASE_ADDR 0xbfd003f8 +#define COM2_BASE_ADDR 0xbfd002f8 +#define COM3_BASE_ADDR 0xbff003f8 + +#define USE_GODSON2F_UART +//#define USE_CS5536_UART1 +//#define USE_CS5536_UART2 +#define TEST_NO_CS5536 // if you use this, please use USE_GODSON2F_UART +//#define TEST_CS5536_ID +//#define TEST_CS5536_MSR_ACCESS +//#define TEST_CS5536_GPIO +//#define TEST_CS5536_FLASH +//#define TEST_CS5536_USB +//#define TEST_CS5536_SMB +//#define TEST_DDR_BEFORE_COPY +//#define TEST_DDR_AFTER_COPY +#define TEST_CS5536_USE_EHCI +#define TEST_CS5536_USE_UDC +#define TEST_CS5536_USE_OTG +#define TEST_USB_HOST +//#define TEST_USB_DEVICE + +#ifdef USE_GODSON2F_UART +#define COMMON_COM_BASE_ADDR COM3_BASE_ADDR +#define NS16550HZ 3686400 +#else +#define COMMON_COM_BASE_ADDR COM1_BASE_ADDR +#define NS16550HZ 1843200 +#endif + +/*********************************************************************/ +/*nvram define */ +/*********************************************************************/ +//#define NVRAM_IN_FLASH +#ifdef NVRAM_IN_FLASH +# define NVRAM_SIZE (512) +# define NVRAM_SECSIZE NVRAM_SIZE +# define NVRAM_OFFS (0) +# define ETHER_OFFS 494 /* Ethernet address base */ +#else /* Use clock ram, 256 bytes only */ +# define NVRAM_SIZE 108 +# define NVRAM_SECSIZE NVRAM_SIZE /* Helper */ +# define NVRAM_OFFS 0 +# define ETHER_OFFS 108 /* Ethernet address base */ +#endif + + + +/*********************************************************************/ +/*PCI map */ +/*********************************************************************/ + +/* To make address spaces alike with x86 system, we put sdram + * start address at 0 and pci devices' start address at 0x14000000 for + * both CPU address space & PCI memory address space. + * + * We have 3 64M window in CPU address space to access PCI memory, for + * convenience, these window's cpu address fall in 0x10000000 - 0x1c000000. We + * allocate PCI device memory from 0x10000000 to make cpu address == pci + * address to help driver writers. But to initialize VGA, we have to get access + * pci memory at 0xc0000, and we choose to reserve the first window for this + * purpose. Only the last two are used for pci devices. + * --zfx 060716 + * + * The above scheme has a problem: two windows for pci devices are not enough. + * Without rom the VGA chip will ask for a 128M memory space and use up all available + * space! now we have a workaround: make the three window of sizes 128/32/32MB instead of + * 64MB each, then use the first 128 + 32 for normal pci memory, the last 32MB to access + * pci memory 0xc0000. + */ + +#ifndef X86_LIKE_SPACE +#define PCI_LOCAL_MEM_PCI_BASE 0x80000000 +#else +#define PCI_LOCAL_MEM_PCI_BASE 0x00000000 +#endif + +//#define PCI_MEM_SPACE_PCI_BASE 0x10000000 +#define PCI_MEM_SPACE_PCI_BASE 0x00000000 +#define PCI_LOCAL_MEM_ISA_BASE 0x00800000 +#define PCI_LOCAL_REG_PCI_BASE 0x90000000 + +#define PCI_IO_SPACE_BASE 0x00000000 + +#define BONITO_BOOT_BASE 0x1fc00000 +#define BONITO_BOOT_SIZE 0x00100000 +#define BONITO_BOOT_TOP (BONITO_BOOT_BASE+BONITO_BOOT_SIZE-1) +#define BONITO_FLASH_BASE 0x1c000000 +#define BONITO_FLASH_SIZE 0x03000000 +#define BONITO_FLASH_TOP (BONITO_FLASH_BASE+BONITO_FLASH_SIZE-1) +#define BONITO_SOCKET_BASE 0x1f800000 +#define BONITO_SOCKET_SIZE 0x00400000 +#define BONITO_SOCKET_TOP (BONITO_SOCKET_BASE+BONITO_SOCKET_SIZE-1) +#define BONITO_REG_BASE 0x1fe00000 +#define BONITO_REG_SIZE 0x00040000 +#define BONITO_REG_TOP (BONITO_REG_BASE+BONITO_REG_SIZE-1) +#define BONITO_DEV_BASE 0x1ff00000 +#define BONITO_DEV_SIZE 0x00100000 +#define BONITO_DEV_TOP (BONITO_DEV_BASE+BONITO_DEV_SIZE-1) +#define BONITO_PCILO_BASE 0x10000000 +#define BONITO_PCILO_BASE_VA 0xb0000000 +#define BONITO_PCILO_SIZE 0x0c000000 +#define BONITO_PCILO_TOP (BONITO_PCILO_BASE+BONITO_PCILO_SIZE-1) +#define BONITO_PCILO0_BASE 0x10000000 +#define BONITO_PCILO1_BASE 0x14000000 +#define BONITO_PCILO2_BASE 0x18000000 +#define BONITO_PCIHI_BASE 0x20000000 +#define BONITO_PCIHI_SIZE 0x20000000 +#define BONITO_PCIHI_TOP (BONITO_PCIHI_BASE+BONITO_PCIHI_SIZE-1) +#define BONITO_PCIIO_BASE 0x1fd00000 +#define BONITO_PCIIO_BASE_VA 0xbfd00000 +#define BONITO_PCIIO_SIZE 0x00010000 +#define BONITO_PCIIO_TOP (BONITO_PCIIO_BASE+BONITO_PCIIO_SIZE-1) +#define BONITO_PCICFG_BASE 0x1fe80000 +#define BONITO_PCICFG_SIZE 0x00080000 +#define BONITO_PCICFG_TOP (BONITO_PCICFG_BASE+BONITO_PCICFG_SIZE-1) + + +/* Bonito Register Bases */ + +#define BONITO_PCICONFIGBASE 0x00 +#define BONITO_REGBASE 0x100 + + +/* PCI Configuration Registers */ + +#define BONITO_PCI_REG(x) BONITO(BONITO_PCICONFIGBASE + (x)) +#define BONITO_PCIDID BONITO_PCI_REG(0x00) +#define BONITO_PCICMD BONITO_PCI_REG(0x04) +#define BONITO_PCICLASS BONITO_PCI_REG(0x08) +#define BONITO_PCILTIMER BONITO_PCI_REG(0x0c) +#define BONITO_PCIBASE0 BONITO_PCI_REG(0x10) +#define BONITO_PCIBASE1 BONITO_PCI_REG(0x14) +#define BONITO_PCIBASE2 BONITO_PCI_REG(0x18) +#define BONITO_PCIEXPRBASE BONITO_PCI_REG(0x30) +#define BONITO_PCIINT BONITO_PCI_REG(0x3c) + +#define BONITO_PCICMD_PERR_CLR 0x80000000 +#define BONITO_PCICMD_SERR_CLR 0x40000000 +#define BONITO_PCICMD_MABORT_CLR 0x20000000 +#define BONITO_PCICMD_MTABORT_CLR 0x10000000 +#define BONITO_PCICMD_TABORT_CLR 0x08000000 +#define BONITO_PCICMD_MPERR_CLR 0x01000000 +#define BONITO_PCICMD_PERRRESPEN 0x00000040 +#define BONITO_PCICMD_ASTEPEN 0x00000080 +#define BONITO_PCICMD_SERREN 0x00000100 +#define BONITO_PCILTIMER_BUSLATENCY 0x0000ff00 +#define BONITO_PCILTIMER_BUSLATENCY_SHIFT 8 + + + + +/* 1. Bonito h/w Configuration */ +/* Power on register */ + +#define BONITO_BONPONCFG BONITO(BONITO_REGBASE + 0x00) + +#define BONITO_BONPONCFG_SYSCONTROLLERRD 0x00040000 +#define BONITO_BONPONCFG_ROMCS1SAMP 0x00020000 +#define BONITO_BONPONCFG_ROMCS0SAMP 0x00010000 +#define BONITO_BONPONCFG_CPUBIGEND 0x00004000 +#define BONITO_BONPONCFG_CPUPARITY 0x00002000 +#define BONITO_BONPONCFG_CPUTYPE 0x00000007 +#define BONITO_BONPONCFG_CPUTYPE_SHIFT 0 +#define BONITO_BONPONCFG_PCIRESET_OUT 0x00000008 +#define BONITO_BONPONCFG_IS_ARBITER 0x00000010 +#define BONITO_BONPONCFG_ROMBOOT 0x000000c0 +#define BONITO_BONPONCFG_ROMBOOT_SHIFT 6 + +#define BONITO_BONPONCFG_ROMBOOT_FLASH (0x0<>26) & BONITO_PCIMAP_PCIMAP_LO0) << ((WIN)*6)) + +#define BONITO_PCIMAP_WINSIZE (1<<26) +#define BONITO_PCIMAP_WINOFFSET(ADDR) ((ADDR) & (BONITO_PCIMAP_WINSIZE - 1)) +#define BONITO_PCIMAP_WINBASE(ADDR) ((ADDR) << 26) + +/* pcimembaseCfg */ + +#define BONITO_PCIMEMBASECFG_MASK 0xf0000000 +#define BONITO_PCIMEMBASECFG_MEMBASE0_MASK 0x0000001f +#define BONITO_PCIMEMBASECFG_MEMBASE0_MASK_SHIFT 0 +#define BONITO_PCIMEMBASECFG_MEMBASE0_TRANS 0x000003e0 +#define BONITO_PCIMEMBASECFG_MEMBASE0_TRANS_SHIFT 5 +#define BONITO_PCIMEMBASECFG_MEMBASE0_CACHED 0x00000400 +#define BONITO_PCIMEMBASECFG_MEMBASE0_IO 0x00000800 + +#define BONITO_PCIMEMBASECFG_MEMBASE1_MASK 0x0001f000 +#define BONITO_PCIMEMBASECFG_MEMBASE1_MASK_SHIFT 12 +#define BONITO_PCIMEMBASECFG_MEMBASE1_TRANS 0x003e0000 +#define BONITO_PCIMEMBASECFG_MEMBASE1_TRANS_SHIFT 17 +#define BONITO_PCIMEMBASECFG_MEMBASE1_CACHED 0x00400000 +#define BONITO_PCIMEMBASECFG_MEMBASE1_IO 0x00800000 + +#define BONITO_PCIMEMBASECFG_ASHIFT 23 +#define BONITO_PCIMEMBASECFG_AMASK 0x007fffff +#define BONITO_PCIMEMBASECFGSIZE(WIN,SIZE) (((~((SIZE)-1))>>(BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK) +#define BONITO_PCIMEMBASECFGBASE(WIN,BASE) (((BASE)>>(BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS_SHIFT)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS) + +#define BONITO_PCIMEMBASECFG_SIZE(WIN,CFG) (((((~(CFG)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK)) << (BONITO_PCIMEMBASECFG_ASHIFT - BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT)) | BONITO_PCIMEMBASECFG_AMASK) + + +#define BONITO_PCIMEMBASECFG_ADDRMASK(WIN,CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT) +#define BONITO_PCIMEMBASECFG_ADDRMASK(WIN,CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT) +#define BONITO_PCIMEMBASECFG_ADDRTRANS(WIN,CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT) + +#define BONITO_PCITOPHYS(WIN,ADDR,CFG) ( \ + (((ADDR) & (~(BONITO_PCIMEMBASECFG_MASK))) & (~(BONITO_PCIMEMBASECFG_ADDRMASK(WIN,CFG)))) | \ + (BONITO_PCIMEMBASECFG_ADDRTRANS(WIN,CFG)) \ + ) + +/* PCICmd */ + +#define BONITO_PCICMD_MEMEN 0x00000002 +#define BONITO_PCICMD_MSTREN 0x00000004 + +/* DDR - sdCfg */ +#define BONITO_SDCFG_TRC_SHIFT 0 +#define BONITO_SDCFG_TRP_SHIFT 2 +#define BONITO_SDCFG_TWR_SHIFT 3 +#define BONITO_SDCFG_TCAS_SHIFT 4 +#define BONITO_SDCFG_TRAS_SHIFT 6 +#define BONITO_SDCFG_TRFC_SHIFT 7 +#define BONITO_SDCFG_TRCD_SHIFT 9 +#define BONITO_SDCFG_TREF_SHIFT 10 +#define BONITO_SDCFG_DDRTYPE_SHIFT 22 +#define BONITO_SDCFG_ISSEQ_SHIFT 26 +#define BONITO_SDCFG_DIMM_MOD_NUM_SHIFT 27 + +#define VTSB_BUS 0 +#define VTSB_DEV 5 +#define VTSB_ISA_FUNC 0 +#define VTSB_IDE_FUNC 1 + +#endif /* _BONITO_H_ */ diff --git a/Targets/Bonito2F7inch/include/cs5536.h b/Targets/Bonito2F7inch/include/cs5536.h new file mode 100644 index 00000000..d936e1ed --- /dev/null +++ b/Targets/Bonito2F7inch/include/cs5536.h @@ -0,0 +1,570 @@ +/* + * cs5536.h + * + * The include file of cs5536 sourthbridge define which is used in the pmon only. + * you can modify it or change it, please set the modify time and steps. + * + * Author : jlliu + * Data : 07-6-27 + */ + +#ifndef _CS5536_H +#define _CS5536_H + +/*************************************************************************/ + +/* + * basic define + */ +#define PCI_IO_BASE 0x1fd00000 //( < 0x1fe00000) +#define PCI_IO_BASE_VA 0xbfd00000 +#define PCI_MEM_BASE 0x10000000 //( < 0x1c000000 ) +#define PCI_MEM_BASE_VA 0xb0000000 + +/* + * MSR module base + */ +#define CS5536_SB_MSR_BASE (0x00000000) +#define CS5536_GLIU_MSR_BASE (0x10000000) +#define CS5536_ILLEGAL_MSR_BASE (0x20000000) +#define CS5536_USB_MSR_BASE (0x40000000) +#define CS5536_IDE_MSR_BASE (0x60000000) +#define CS5536_DIVIL_MSR_BASE (0x80000000) +#define CS5536_ACC_MSR_BASE (0xa0000000) +#define CS5536_UNUSED_MSR_BASE (0xc0000000) +#define CS5536_GLCP_MSR_BASE (0xe0000000) + +#define SB_MSR_REG(offset) (CS5536_SB_MSR_BASE | offset) +#define GLIU_MSR_REG(offset) (CS5536_GLIU_MSR_BASE | offset) +#define ILLEGAL_MSR_REG(offset) (CS5536_ILLEGAL_MSR_BASE| offset) +#define USB_MSR_REG(offset) (CS5536_USB_MSR_BASE | offset) +#define IDE_MSR_REG(offset) (CS5536_IDE_MSR_BASE | offset) +#define DIVIL_MSR_REG(offset) (CS5536_DIVIL_MSR_BASE | offset) +#define ACC_MSR_REG(offset) (CS5536_ACC_MSR_BASE | offset) +#define UNUSED_MSR_REG(offset) (CS5536_UNUSED_MSR_BASE | offset) +#define GLCP_MSR_REG(offset) (CS5536_GLCP_MSR_BASE | offset) +/* + * PCI MSR ACCESS + */ +#define PCI_MSR_CTRL 0xF0 +#define PCI_MSR_ADDR 0xF4 +#define PCI_MSR_DATA_LO 0xF8 +#define PCI_MSR_DATA_HI 0xFC + +/******************************* MSR *****************************************/ + +/* + * GLIU STANDARD MSR + */ +#define GLIU_CAP 0x00 +#define GLIU_CONFIG 0x01 +#define GLIU_SMI 0x02 +#define GLIU_ERROR 0x03 +#define GLIU_PM 0x04 +#define GLIU_DIAG 0x05 + +/* + * GLIU SPEC. MSR + */ +#define GLIU_P2D_BM0 0x20 +#define GLIU_P2D_BM1 0x21 +#define GLIU_P2D_BM2 0x22 +#define GLIU_P2D_BMK0 0x23 +#define GLIU_P2D_BMK1 0x24 +#define GLIU_P2D_BM3 0x25 +#define GLIU_P2D_BM4 0x26 +#define GLIU_COH 0x80 +#define GLIU_PAE 0x81 +#define GLIU_ARB 0x82 +#define GLIU_ASMI 0x83 +#define GLIU_AERR 0x84 +#define GLIU_DEBUG 0x85 +#define GLIU_PHY_CAP 0x86 +#define GLIU_NOUT_RESP 0x87 +#define GLIU_NOUT_WDATA 0x88 +#define GLIU_WHOAMI 0x8B +#define GLIU_SLV_DIS 0x8C +#define GLIU_IOD_BM0 0xE0 +#define GLIU_IOD_BM1 0xE1 +#define GLIU_IOD_BM2 0xE2 +#define GLIU_IOD_BM3 0xE3 +#define GLIU_IOD_BM4 0xE4 +#define GLIU_IOD_BM5 0xE5 +#define GLIU_IOD_BM6 0xE6 +#define GLIU_IOD_BM7 0xE7 +#define GLIU_IOD_BM8 0xE8 +#define GLIU_IOD_BM9 0xE9 +#define GLIU_IOD_SC0 0xEA +#define GLIU_IOD_SC1 0xEB +#define GLIU_IOD_SC2 0xEC +#define GLIU_IOD_SC3 0xED +#define GLIU_IOD_SC4 0xEE +#define GLIU_IOD_SC5 0xEF +#define GLIU_IOD_SC6 0xF0 +#define GLIU_IOD_SC7 0xF1 + +/* + * SB STANDARD + */ +#define SB_CAP 0x00 +#define SB_CONFIG 0x01 +#define SB_SMI 0x02 +#define SB_ERROR 0x03 +#define SB_MAR_ERR_EN 0x00000001 +#define SB_TAR_ERR_EN 0x00000002 +#define SB_RSVD_BIT1 0x00000004 +#define SB_EXCEP_ERR_EN 0x00000008 +#define SB_SYSE_ERR_EN 0x00000010 +#define SB_PARE_ERR_EN 0x00000020 +#define SB_TAS_ERR_EN 0x00000040 +#define SB_MAR_ERR_FLAG 0x00010000 +#define SB_TAR_ERR_FLAG 0x00020000 +#define SB_RSVD_BIT2 0x00040000 +#define SB_EXCEP_ERR_FLAG 0x00080000 +#define SB_SYSE_ERR_FLAG 0x00100000 +#define SB_PARE_ERR_FLAG 0x00200000 +#define SB_TAS_ERR_FLAG 0x00400000 +#define SB_PM 0x04 +#define SB_DIAG 0x05 + +/* + * SB SPEC. + */ +#define SB_CTRL 0x10 +#define SB_R0 0x20 +#define SB_R1 0x21 +#define SB_R2 0x22 +#define SB_R3 0x23 +#define SB_R4 0x24 +#define SB_R5 0x25 +#define SB_R6 0x26 +#define SB_R7 0x27 +#define SB_R8 0x28 +#define SB_R9 0x29 +#define SB_R10 0x2A +#define SB_R11 0x2B +#define SB_R12 0x2C +#define SB_R13 0x2D +#define SB_R14 0x2E +#define SB_R15 0x2F + +/* + * GLCP STANDARD + */ +#define GLCP_CAP 0x00 +#define GLCP_CONFIG 0x01 +#define GLCP_SMI 0x02 +#define GLCP_ERROR 0x03 +#define GLCP_PM 0x04 +#define GLCP_DIAG 0x05 + +/* + * GLCP SPEC. + */ +#define GLCP_CLK_DIS_DELAY 0x08 +#define GLCP_PM_CLK_DISABLE 0x09 +#define GLCP_GLB_PM 0x0B +#define GLCP_DBG_OUT 0x0C +#define GLCP_RSVD1 0x0D +#define GLCP_SOFT_COM 0x0E +#define SOFT_BAR_SMB_FLAG 0x00000001 +#define SOFT_BAR_GPIO_FLAG 0x00000002 +#define SOFT_BAR_MFGPT_FLAG 0x00000004 +#define SOFT_BAR_IRQ_FLAG 0x00000008 +#define SOFT_BAR_PMS_FLAG 0x00000010 +#define SOFT_BAR_ACPI_FLAG 0x00000020 +#define SOFT_BAR_FLSH0_FLAG 0x00000040 +#define SOFT_BAR_FLSH1_FLAG 0x00000080 +#define SOFT_BAR_FLSH2_FLAG 0x00000100 +#define SOFT_BAR_FLSH3_FLAG 0x00000200 +#define SOFT_BAR_IDE_FLAG 0x00000400 +#define SOFT_BAR_ACC_FLAG 0x00000800 +#define SOFT_BAR_OHCI_FLAG 0x00001000 +#define SOFT_BAR_EHCI_FLAG 0x00002000 +#define SOFT_BAR_UDC_FLAG 0x00004000 +#define SOFT_BAR_OTG_FLAG 0x00008000 +#define GLCP_RSVD2 0x0F +#define GLCP_CLK_OFF 0x10 +#define GLCP_CLK_ACTIVE 0x11 +#define GLCP_CLK_DISABLE 0x12 +#define GLCP_CLK4ACK 0x13 +#define GLCP_SYS_RST 0x14 +#define GLCP_RSVD3 0x15 +#define GLCP_DBG_CLK_CTRL 0x16 +#define GLCP_CHIP_REV_ID 0x17 + +/* + * DIVIL STANDARD + */ +#define DIVIL_CAP 0x00 +#define DIVIL_CONFIG 0x01 +#define DIVIL_SMI 0x02 +#define DIVIL_ERROR 0x03 +#define DIVIL_PM 0x04 +#define DIVIL_DIAG 0x05 + +/* + * DIVIL SPEC. + */ +#define DIVIL_LBAR_IRQ 0x08 +#define DIVIL_LBAR_KEL 0x09 +#define DIVIL_LBAR_SMB 0x0B +#define DIVIL_LBAR_GPIO 0x0C +#define DIVIL_LBAR_MFGPT 0x0D +#define DIVIL_LBAR_ACPI 0x0E +#define DIVIL_LBAR_PMS 0x0F +#define DIVIL_LBAR_FLSH0 0x10 +#define DIVIL_LBAR_FLSH1 0x11 +#define DIVIL_LBAR_FLSH2 0x12 +#define DIVIL_LBAR_FLSH3 0x13 +#define DIVIL_LEG_IO 0x14 +#define DIVIL_BALL_OPTS 0x15 +#define DIVIL_SOFT_IRQ 0x16 +#define DIVIL_SOFT_RESET 0x17 +// NOR FLASH +#define NORF_CTRL 0x18 +#define NORF_T01 0x19 +#define NORF_T23 0x1A +// NAND FLASH +#define NANDF_DATA 0x1B +#define NANDF_CTRL 0x1C +#define NANDF_RSVD 0x1D +// KEL Keyboard Emulation Logic +#define KEL_CTRL 0x1F +// PIC +#define PIC_YZSEL_LOW 0x20 +#define PIC_YSEL_HIGH 0x21 +#define PIC_ZSEL_LOW 0x22 +#define PIC_ZSEL_HIGH 0x23 +#define PIC_IRQM_PRIM 0x24 +#define PIC_IRQM_LPC 0x25 +#define PIC_XIRR_STS_LOW 0x26 +#define PIC_XIRR_STS_HIGH 0x27 +#define PCI_SHDW 0x34 +// MFGPT +#define MFGPT_IRQ 0x28 +#define MFGPT_NR 0x29 +#define MFGPT_RSVD 0x2A +#define MFGPT_SETUP 0x2B +// FLOPPY +#define FLPY_3F2_SHDW 0x30 +#define FLPY_3F7_SHDW 0x31 +#define FLPY_372_SHDW 0x32 +#define FLPY_377_SHDW 0x33 +// PIT +#define PIT_SHDW 0x36 +#define PIT_CNTRL 0x37 +// UART +#define UART1_MOD 0x38 +#define UART1_DONG 0x39 +#define UART1_CONF 0x3A +#define UART1_RSVD 0x3B +#define UART2_MOD 0x3C +#define UART2_DONG 0x3D +#define UART2_CONF 0x3E +#define UART2_RSVD 0x3F +// DMA +#define DIVIL_AC_DMA 0x1E +#define DMA_MAP 0x40 +#define DMA_SHDW_CH0 0x41 +#define DMA_SHDW_CH1 0x42 +#define DMA_SHDW_CH2 0x43 +#define DMA_SHDW_CH3 0x44 +#define DMA_SHDW_CH4 0x45 +#define DMA_SHDW_CH5 0x46 +#define DMA_SHDW_CH6 0x47 +#define DMA_SHDW_CH7 0x48 +#define DMA_MSK_SHDW 0x49 +// LPC +#define LPC_EADDR 0x4C +#define LPC_ESTAT 0x4D +#define LPC_SIRQ 0x4E +#define LPC_RSVD 0x4F +// PMC +#define PMC_LTMR 0x50 +#define PMC_RSVD 0x51 +// RTC +#define RTC_RAM_LOCK 0x54 +#define RTC_DOMA_OFFSET 0x55 +#define RTC_MONA_OFFSET 0x56 +#define RTC_CEN_OFFSET 0x57 + +/* + * IDE STANDARD + */ +#define IDE_CAP 0x00 +#define IDE_CONFIG 0x01 +#define IDE_SMI 0x02 +#define IDE_ERROR 0x03 +#define IDE_PM 0x04 +#define IDE_DIAG 0x05 + +/* + * ACC STANDARD + */ +#define ACC_CAP 0x00 +#define ACC_CONFIG 0x01 +#define ACC_SMI 0x02 +#define ACC_ERROR 0x03 +#define ACC_PM 0x04 +#define ACC_DIAG 0x05 + +/* + * IDE SPEC. + */ +#define IDE_IO_BAR 0x08 +#define IDE_CFG 0x10 +#define IDE_DTC 0x12 +#define IDE_CAST 0x13 +#define IDE_ETC 0x14 +#define IDE_INTERNAL_PM 0x15 + +/* + * USB STANDARD + */ +#define USB_CAP 0x00 +#define USB_CONFIG 0x01 +#define USB_SMI 0x02 +#define USB_ERROR 0x03 +#define USB_PM 0x04 +#define USB_DIAG 0x05 + +/* + * USB SPEC. + */ +#define USB_OHCI 0x08 +#define USB_EHCI 0x09 +#define USB_UDC 0x0A +#define USB_OTG 0x0B + +/********************************** NATIVE ************************************/ + +#define CS5536_IDE_RANGE 0xfffffff0 +#define CS5536_IDE_LENGTH 0x10 + +/* + * IDE NATIVE : I/O SPACE + * REG : 8BITS WIDTH + * BASE : DETERMINED BY MSR + */ +#define IDE_BM_CMD 0x00 +#define IDE_BM_STS 0x02 +#define IDE_BM_PRD 0x04 + +/* + * ACC + */ +#define CS5536_ACC_RANGE 0xffffff80 +#define CS5536_ACC_LENGTH 0x80 + +/* + * USB NATIVE : MEM SPACE + * REG : 32BITS WIDTH + */ +#define CS5536_OHCI_RANGE 0xfffff000 +#define CS5536_OHCI_LENGTH 0x1000 + +#define CS5536_EHCI_RANGE 0xfffff000 +#define CS5536_EHCI_LENGTH 0x1000 + +#define CS5536_UDC_RANGE 0xffffe000 +#define CS5536_UDC_LENGTH 0x2000 + +#define CS5536_OTG_RANGE 0xfffff000 +#define CS5536_OTG_LENGTH 0x1000 + +// OHCI NATIVE +#define OHCI_REVISION 0x00 +#define OHCI_CONTROL 0x04 +#define OHCI_COMMAND_STATUS 0x08 +#define OHCI_INT_STATUS 0x0C +#define OHCI_INT_ENABLE 0x10 +#define OHCI_INT_DISABLE 0x14 +#define OHCI_HCCA 0x18 +#define OHCI_PERI_CUR_ED 0x1C +#define OHCI_CTRL_HEAD_ED 0x20 +#define OHCI_CTRL_CUR_ED 0x24 +#define OHCI_BULK_HEAD_ED 0x28 +#define OHCI_BULK_CUR_ED 0x2C +#define OHCI_DONE_HEAD 0x30 +#define OHCI_FM_INTERVAL 0x34 +#define OHCI_FM_REMAINING 0x38 +#define OHCI_FM_NUMBER 0x3C +#define OHCI_PERI_START 0x40 +#define OHCI_LS_THRESHOLD 0x44 +#define OHCI_RH_DESCRIPTORA 0x48 +#define OHCI_RH_DESCRIPTORB 0x4C +#define OHCI_RH_STATUS 0x50 +#define OHCI_RH_PORT_STATUS1 0x54 +#define OHCI_RH_PORT_STATUS2 0x58 +#define OHCI_RH_PORT_STATUS3 0x5C +#define OHCI_RH_PORT_STATUS4 0x60 + +/* + * DIVIL NATIVE + */ +#define CS5536_IRQ_RANGE 0xffffffe0 // USERD FOR PCI PROBE +#define CS5536_IRQ_LENGTH 0x20 // THE REGS ACTUAL LENGTH + +#define CS5536_SMB_RANGE 0xfffffff8 +#define CS5536_SMB_LENGTH 0x08 + +#define CS5536_GPIO_RANGE 0xffffff00 +#define CS5536_GPIO_LENGTH 0x100 + +#define CS5536_MFGPT_RANGE 0xffffffc0 +#define CS5536_MFGPT_LENGTH 0x40 + +#define CS5536_ACPI_RANGE 0xffffffe0 +#define CS5536_ACPI_LENGTH 0x20 + +#define CS5536_PMS_RANGE 0xffffff80 +#define CS5536_PMS_LENGTH 0x80 + + +// KEL : MEM SPACE; REG :32BITS WIDTH +#define KEL_HCE_CTRL 0x100 +#define KEL_HCE_IN 0x104 +#define KEL_HCE_OUT 0x108 +#define KEL_HCE_STS 0x10C +#define KEL_PORTA 0x92 //8bits +// PIC : I/O SPACE; REG : 8BITS +#define PIC_ICW1_MASTER 0x20 +#define PIC_ICW1_SLAVE 0xA0 +#define PIC_ICW2_MASTER 0x21 +#define PIC_ICW2_SLAVE 0xA1 +#define PIC_ICW3_MASTER 0x21 +#define PIC_ICW3_SLAVE 0xA1 +#define PIC_ICW4_MASTER 0x21 +#define PIC_ICW4_SLAVE 0xA1 +#define PIC_OCW1_MASTER 0x21 +#define PIC_OCW1_SLAVE 0xA1 +#define PIC_OCW2_MASTER 0x20 +#define PIC_OCW2_SLAVE 0xA0 +#define PIC_OCW3_MASTER 0x20 +#define PIC_OCW3_SLAVE 0xA0 +#define PIC_IRR_MASTER 0x20 +#define PIC_IRR_SLAVE 0xA0 +#define PIC_ISR_MASTER 0x20 +#define PIC_ISR_SLAVE 0xA0 +#define PIC_INT_SEL1 0x4D0 +#define PIC_INT_SEL2 0x4D1 +// GPIO : I/O SPACE; REG : 32BITS +#define GPIOL_OUT_VAL 0x00 +#define GPIOL_OUT_EN 0x04 +#define GPIOL_OUT_OD_EN 0x08 +#define GPIOL_OUT_INVRT_EN 0x0c +#define GPIOL_OUT_AUX1_SEL 0x10 +#define GPIOL_OUT_AUX2_SEL 0x14 +#define GPIOL_PU_EN 0x18 +#define GPIOL_PD_EN 0x1c +#define GPIOL_IN_EN 0x20 +#define GPIOL_IN_INVRT_EN 0x24 +#define GPIOL_IN_FLTR_EN 0x28 +#define GPIOL_IN_EVNTCNT_EN 0x2c +#define GPIOL_IN_READBACK 0x30 +#define GPIOL_IN_AUX1_SEL 0x34 +#define GPIOL_EVNT_EN 0x38 +#define GPIOL_LOCK_EN 0x3c +#define GPIOL_IN_POSEDGE_EN 0x40 +#define GPIOL_IN_NEGEDGE_EN 0x44 +#define GPIOL_IN_POSEDGE_STS 0x48 +#define GPIOL_IN_NEGEDGE_STS 0x4c +#define GPIOH_OUT_VAL 0x80 +#define GPIOH_OUT_EN 0x84 +#define GPIOH_OUT_OD_EN 0x88 +#define GPIOH_OUT_INVRT_EN 0x8c +#define GPIOH_OUT_AUX1_SEL 0x90 +#define GPIOH_OUT_AUX2_SEL 0x94 +#define GPIOH_PU_EN 0x98 +#define GPIOH_PD_EN 0x9c +#define GPIOH_IN_EN 0xA0 +#define GPIOH_IN_INVRT_EN 0xA4 +#define GPIOH_IN_FLTR_EN 0xA8 +#define GPIOH_IN_EVNTCNT_EN 0xAc +#define GPIOH_IN_READBACK 0xB0 +#define GPIOH_IN_AUX1_SEL 0xB4 +#define GPIOH_EVNT_EN 0xB8 +#define GPIOH_LOCK_EN 0xBc +#define GPIOH_IN_POSEDGE_EN 0xC0 +#define GPIOH_IN_NEGEDGE_EN 0xC4 +#define GPIOH_IN_POSEDGE_STS 0xC8 +#define GPIOH_IN_NEGEDGE_STS 0xCC +// SMB : I/O SPACE, REG : 8BITS WIDTH +#define SMB_SDA 0x00 +#define SMB_STS 0x01 +#define SMB_STS_SLVSTP (1 << 7) +#define SMB_STS_SDAST (1 << 6) +#define SMB_STS_BER (1 << 5) +#define SMB_STS_NEGACK (1 << 4) +#define SMB_STS_STASTR (1 << 3) +#define SMB_STS_NMATCH (1 << 2) +#define SMB_STS_MASTER (1 << 1) +#define SMB_STS_XMIT (1 << 0) +#define SMB_CTRL_STS 0x02 +#define SMB_CSTS_TGSTL (1 << 5) +#define SMB_CSTS_TSDA (1 << 4) +#define SMB_CSTS_GCMTCH (1 << 3) +#define SMB_CSTS_MATCH (1 << 2) +#define SMB_CSTS_BB (1 << 1) +#define SMB_CSTS_BUSY (1 << 0) +#define SMB_CTRL1 0x03 +#define SMB_CTRL1_STASTRE (1 << 7) +#define SMB_CTRL1_NMINTE (1 << 6) +#define SMB_CTRL1_GCMEN (1 << 5) +#define SMB_CTRL1_ACK (1 << 4) +#define SMB_CTRL1_RSVD (1 << 3) +#define SMB_CTRL1_INTEN (1 << 2) +#define SMB_CTRL1_STOP (1 << 1) +#define SMB_CTRL1_START (1 << 0) +#define SMB_ADDR 0x04 +#define SMB_ADDR_SAEN (1 << 7) +#define SMB_CTRL2 0x05 +#define SMB_ENABLE (1 << 0) +#define SMB_CTRL3 0x06 + +/*********************************** LEGACY I/O *******************************/ + +/* + * LEGACY I/O SPACE BASE + */ +#define CS5536_LEGACY_BASE_ADDR (PCI_IO_BASE_VA | 0x0000) + +/* + * IDE LEGACY REG : legacy IO address is 0x170~0x177 and 0x376 (0x1f0~0x1f7 and 0x3f6) + * all registers are 16bits except the IDE_LEGACY_DATA reg + * some registers are read only and the + */ +#define PRI_IDE_LEGACY_REG(offset) (CS5536_LEGACY_BASE_ADDR | 0x1f0 | offset) +#define SEC_IDE_LEGACY_REG(offset) (CS5536_LEGACY_BASE_ADDR | 0x170 | offset) + +#define IDE_LEGACY_DATA 0x00 // RW +#define IDE_LEGACY_ERROR 0x01 // RO +#define IDE_LEGACY_FEATURE 0x01 // WO +#define IDE_LEGACY_SECTOR_COUNT 0x02 // RW +#define IDE_LEGACY_SECTOR_NUM 0x03 // RW +#define IDE_LEGACY_CYL_LO 0x04 // RW +#define IDE_LEGACY_CYL_HI 0x05 // RW +#define IDE_LEGACY_HEAD 0x06 // RW +#define IDE_LEGACY_HEAD_DRV (1 << 4) +#define IDE_LEGACY_HEAD_LBA (1 << 6) +#define IDE_LEGACY_HEAD_IBM (1 << 7 | 1 << 5) +#define IDE_LEGACY_STATUS 0x07 // RO +#define IDE_LEGACY_STATUS_ERR (1 << 0) +#define IDE_LEGACY_STATUS_IDX (1 << 1) +#define IDE_LEGACY_STATUS_CORR (1 << 2) +#define IDE_LEGACY_STATUS_DRQ (1 << 3) +#define IDE_LEGACY_STATUS_DSC (1 << 4) +#define IDE_LEGACY_STATUS_DWF (1 << 5) +#define IDE_LEGACY_STATUS_DRDY (1 << 6) +#define IDE_LEGACY_STATUS_BUSY (1 << 7) +#define IDE_LEGACY_COMMAND 0x07 // WO +#define IDE_LEGACY_ASTATUS 0x206 // RO +#define IDE_LEGACY_CTRL 0x206 // WO +#define IDE_LEGACY_CTRL_IDS 0x02 +#define IDE_LEGACY_CTRL_RST 0x04 +#define IDE_LEGACY_CTRL_4BIT 0x08 + +/**********************************************************************************/ + +#endif /* _CS5536_H */ diff --git a/Targets/Bonito2F7inch/include/cs5536_pci.h b/Targets/Bonito2F7inch/include/cs5536_pci.h new file mode 100644 index 00000000..4330b4e6 --- /dev/null +++ b/Targets/Bonito2F7inch/include/cs5536_pci.h @@ -0,0 +1,139 @@ +/* + * cs5536_vsm.h + * the definition file of cs5536 Virtual Support Module(VSM). + * pci configuration space can be accessed through the VSM, so + * there is no need the MSR read/write now, except the spec. MSR + * registers which are not implemented yet. + * + * Author : jlliu + * Date : 07-07-04 + * + */ + +#ifndef _CS5536_PCI_H +#define _CS5536_PCI_H + +/**********************************************************************/ + +#define PCI_SPECIAL_SHUTDOWN 1 + +/************************* PCI BUS DEVICE FUNCTION ********************/ + +/* + * PCI bus device function + */ +#define PCI_BUS_CS5536 0 +#define PCI_IDSEL_CS5536 14 +#define PCI_CFG_BASE 0x02000000 + +#define CS5536_ISA_FUNC 0 +#define CS5536_FLASH_FUNC 1 +#define CS5536_IDE_FUNC 2 +#define CS5536_ACC_FUNC 3 +#define CS5536_OHCI_FUNC 4 +#define CS5536_EHCI_FUNC 5 +#define CS5536_UDC_FUNC 6 +#define CS5536_OTG_FUNC 7 +#define CS5536_FUNC_START 0 +#define CS5536_FUNC_END 7 +#define CS5536_FUNC_COUNT (CS5536_FUNC_END - CS5536_FUNC_START + 1) + +/***************************** STANDARD PCI-2.2 EXPANSION ***********************/ + +/* + * PCI configuration space + * we have to virtualize the PCI configure space head, so we should + * define the necessary IDs and some others. + */ +/* VENDOR ID */ +#define CS5536_VENDOR_ID 0x1022 + +/* DEVICE ID */ +#define CS5536_ISA_DEVICE_ID 0x2090 +#define CS5536_FLASH_DEVICE_ID 0x2091 +#define CS5536_IDE_DEVICE_ID 0x209A +#define CS5536_ACC_DEVICE_ID 0x2093 +#define CS5536_OHCI_DEVICE_ID 0x2094 +#define CS5536_EHCI_DEVICE_ID 0x2095 +#define CS5536_UDC_DEVICE_ID 0x2096 +#define CS5536_OTG_DEVICE_ID 0x2097 + +/* CLASS CODE : CLASS SUB-CLASS INTERFACE */ +#define CS5536_ISA_CLASS_CODE 0x060100 +#define CS5536_FLASH_CLASS_CODE 0x050100 +#define CS5536_IDE_CLASS_CODE 0x010180 +#define CS5536_ACC_CLASS_CODE 0x040100 +#define CS5536_OHCI_CLASS_CODE 0x0C0310 +#define CS5536_EHCI_CLASS_CODE 0x0C0320 +#define CS5536_UDC_CLASS_CODE 0x0C03FE +#define CS5536_OTG_CLASS_CODE 0x0C0380 + +/* BHLC : BIST HEADER-TYPE LATENCY-TIMER CACHE-LINE-SIZE */ +#define PCI_NONE_BIST 0x00 //RO not implemented yet. +#define PCI_BRIDGE_HEADER_TYPE 0x80 //RO +#define PCI_NORMAL_HEADER_TYPE 0x00 +#define PCI_NORMAL_LATENCY_TIMER 0x40 +#define PCI_NORMAL_CACHE_LINE_SIZE 0x08 //RW + +/* BAR */ +#define PCI_BAR0_REG 0x10 +#define PCI_BAR1_REG 0x14 +#define PCI_BAR2_REG 0x18 +#define PCI_BAR3_REG 0x1c +#define PCI_BAR4_REG 0x20 +#define PCI_BAR5_REG 0x24 +#define PCI_BAR_COUNT 6 +#define PCI_BAR_RANGE_MASK 0xFFFFFFFF + +/* CARDBUS CIS POINTER */ +#define PCI_CARDBUS_CIS_POINTER 0x00000000 + +/* SUBSYSTEM VENDOR ID */ +#define CS5536_SUB_VENDOR_ID CS5536_VENDOR_ID + +/* SUBSYSTEM ID */ +#define CS5536_ISA_SUB_ID CS5536_ISA_DEVICE_ID +#define CS5536_FLASH_SUB_ID CS5536_FLASH_DEVICE_ID +#define CS5536_IDE_SUB_ID CS5536_IDE_DEVICE_ID +#define CS5536_ACC_SUB_ID CS5536_ACC_DEVICE_ID +#define CS5536_OHCI_SUB_ID CS5536_OHCI_DEVICE_ID +#define CS5536_EHCI_SUB_ID CS5536_EHCI_DEVICE_ID +#define CS5536_UDC_SUB_ID CS5536_UDC_DEVICE_ID +#define CS5536_OTG_SUB_ID CS5536_OTG_DEVICE_ID + +/* EXPANSION ROM BAR */ +#define PCI_EXPANSION_ROM_BAR 0x00000000 + +/* CAPABILITIES POINTER */ +#define PCI_CAPLIST_POINTER 0x00000000 +#define PCI_CAPLIST_USB_POINTER 0x40 +/* INTERRUPT */ +#define PCI_MAX_LATENCY 0x00 +#define PCI_MIN_GRANT 0x00 + +/**************************** EXPANSION PCI REG **************************************/ + +/* + * IDE EXPANSION + */ +#define PCI_IDE_CFG_REG 0x40 +#define CS5536_IDE_FLASH_SIGNATURE 0xDEADBEEF +#define PCI_IDE_DTC_REG 0x48 +#define PCI_IDE_CAST_REG 0x4C +#define PCI_IDE_ETC_REG 0x50 +#define PCI_IDE_PM_REG 0x54 + +/* + * OHCI EXPANSION + */ +#define PCI_USB_PM_REG 0x40 + +/* + * EHCI EXPANSION + */ +#define PCI_EHCI_LEGSMIEN_REG 0x50 +#define PCI_EHCI_LEGSMISTS_REG 0x54 +#define PCI_EHCI_FLADJ_REG 0x60 + +#endif /* _CS5536_PCI_H_ */ + diff --git a/Targets/Bonito2F7inch/include/i8254.h b/Targets/Bonito2F7inch/include/i8254.h new file mode 100644 index 00000000..ace0b72c --- /dev/null +++ b/Targets/Bonito2F7inch/include/i8254.h @@ -0,0 +1,81 @@ +/* + * i8254.h: definitions for i8254 programmable interval timer in P5064 + * + * Copyright (c) 1997-1999, Algorithmics Ltd. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the "Free MIPS" License Agreement, a copy of + * which is available at: + * + * http://www.algor.co.uk/ftp/pub/doc/freemips-license.txt + * + * You may not, however, modify or remove any part of this copyright + * message if this program is redistributed or reused in whole or in + * part. + * + * 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 + * "Free MIPS" License for more details. + */ + +/* Timer 0 is clock interrupt (irq0) + * Timer 1 is refresh clock + * Timer 2 is speaker tone + */ + +#define PT_CLOCK 0 +#define PT_REFRESH 1 +#define PT_SPEAKER 2 +#define PT_CONTROL 3 + +#ifndef __ASSEMBLER__ +struct i8254 { + unsigned char pt_counter0; + unsigned char pt_counter1; + unsigned char pt_counter2; + unsigned char pt_control; +}; + +#define pt_clock pt_counter0 +#define pt_refresh pt_counter1 +#define pt_speaker pt_counter2 + +#else + +#define PT_REG(x) (x) + +#endif + +/* + * control word definitions + */ +#define PTCW_RBCMD (3<<6) /* read-back command */ +#define PTCW_RB_NCNT 0x20 /* rb: no count */ +#define PTCW_RB_NSTAT 0x10 /* rb: no status */ +#define PTCW_RB_SC(x) (0x02<<(x)) /* rb: select counter x */ +#define PTCW_SC(x) ((x)<<6) /* select counter x */ +#define PTCW_CLCMD (0<<4) /* counter latch command */ +#define PTCW_LSB (1<<4) /* r/w least signif. byte only */ +#define PTCW_MSB (2<<4) /* r/w most signif. byte only */ +#define PTCW_16B (3<<4) /* r/w 16 bits, lsb then msb */ +#define PTCW_MODE(x) ((x)<<1) /* set mode to x */ +#define PTCW_BCD 0x1 /* operate in BCD mode */ + +/* + * Status word definitions + */ +#define PTSW_OUTPUT 0x80 /* output pin active */ +#define PTSW_NULL 0x40 /* null count */ + +/* + * Mode definitions + */ +#define MODE_ITC 0 /* interrupt on terminal count */ +#define MODE_HROS 1 /* hw retriggerable one-shot */ +#define MODE_RG 2 /* rate generator */ +#define MODE_SQW 3 /* square wave generator */ +#define MODE_STS 4 /* software triggered strobe */ +#define MODE_HTS 5 /* hardware triggered strobe */ + +#define PT_CRYSTAL 14318180 /* timer crystal hz (ticks/sec) */ diff --git a/Targets/Bonito2F7inch/include/isapnpreg.h b/Targets/Bonito2F7inch/include/isapnpreg.h new file mode 100644 index 00000000..9b3fc3a8 --- /dev/null +++ b/Targets/Bonito2F7inch/include/isapnpreg.h @@ -0,0 +1,189 @@ +/* $OpenBSD: isapnpreg.h,v 1.4 1997/12/25 09:22:41 downsj Exp $ */ +/* $NetBSD: isapnpreg.h,v 1.5 1997/08/12 07:34:34 mikel Exp $ */ + +/* + * Copyright (c) 199 Christos Zoulas. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Christos Zoulas. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _DEV_ISA_ISAPNPREG_H_ +#define _DEV_ISA_ISAPNPREG_H_ + +/* + * ISA Plug and Play register definitions; + * From Plug and Play ISA Specification V1.0a, May 5 1994 + */ + +#define ISAPNP_MAX_CARDS 8 +#define ISAPNP_MAX_IDENT 32 +#define ISAPNP_MAX_DEVCLASS 16 +#define ISAPNP_SERIAL_SIZE 9 +#define ISAPNP_MAX_TAGSIZE 256 + +#define ISAPNP_ADDR 0x279 /* Write only */ +#define ISAPNP_WRDATA 0xa79 /* Write only */ + +/* The read port is in range 0x203 to 0x3ff */ +#define ISAPNP_RDDATA_MIN 0x203 /* Read only */ +#define ISAPNP_RDDATA_MAX 0x3ff + +#define ISAPNP_LFSR_INIT 0x6A /* Initial value of LFSR sequence */ +#define ISAPNP_LFSR_LENGTH 32 /* Number of values in LFSR sequence */ + /* Formula to compute the next value */ +#define ISAPNP_LFSR_NEXT(v) (((v) >> 1) | (((v) & 1) ^ (((v) & 2) >> 1)) << 7) + +#define ISAPNP_SET_RD_PORT 0x00 +#define ISAPNP_SERIAL_ISOLATION 0x01 +#define ISAPNP_CONFIG_CONTROL 0x02 +#define ISAPNP_CC_RESET 0x01 +#define ISAPNP_CC_WAIT_FOR_KEY 0x02 +#define ISAPNP_CC_RESET_CSN 0x04 +#define ISAPNP_CC_RESET_DRV 0x07 +#define ISAPNP_WAKE 0x03 +#define ISAPNP_RESOURCE_DATA 0x04 +#define ISAPNP_STATUS 0x05 +#define ISAPNP_CARD_SELECT_NUM 0x06 +#define ISAPNP_LOGICAL_DEV_NUM 0x07 + +#define ISAPNP_ACTIVATE 0x30 +#define ISAPNP_IO_RANGE_CHECK 0x31 + +#define ISAPNP_NUM_MEM 4 +#define ISAPNP_MEM_DESC { 0x40, 0x48, 0x50, 0x58 } +#define ISAPNP_MEM_BASE_23_16 0x0 +#define ISAPNP_MEM_BASE_15_8 0x1 +#define ISAPNP_MEM_CONTROL 0x2 +#define ISAPNP_MEM_CONTROL_LIMIT 1 +#define ISAPNP_MEM_CONTROL_16 2 +#define ISAPNP_MEM_LRANGE_23_16 0x3 +#define ISAPNP_MEM_LRANGE_15_8 0x4 + +#define ISAPNP_NUM_IO 8 + +#define ISAPNP_IO_DESC0 0x60 +#define ISAPNP_IO_DESC1 0x62 +#define ISAPNP_IO_DESC2 0x64 +#define ISAPNP_IO_DESC3 0x66 +#define ISAPNP_IO_DESC4 0x68 +#define ISAPNP_IO_DESC5 0x6a +#define ISAPNP_IO_DESC6 0x6c +#define ISAPNP_IO_DESC7 0x6e +#define ISAPNP_IO_DESC { 0x60, 0x62, 0x64, 0x68, 0x6a, 0x6c, 0x6e } +#define ISAPNP_IO_BASE_15_8 0x0 +#define ISAPNP_IO_BASE_7_0 0x1 + +#define ISAPNP_IRQ_DESC0 0x70 +#define ISAPNP_IRQ_DESC1 0x72 +#define ISAPNP_NUM_IRQ 16 +#define ISAPNP_IRQ_DESC { 0x70, 0x72 } +#define ISAPNP_IRQ_NUMBER 0x0 +#define ISAPNP_IRQ_CONTROL 0x1 +#define ISAPNP_IRQ_LEVEL 1 +#define ISAPNP_IRQ_HIGH 2 + +#define ISAPNP_NUM_DRQ 8 +#define ISAPNP_DRQ_DESC { 0x74, 0x75 } + +#define ISAPNP_NUM_MEM32 4 +#define ISAPNP_MEM32_DESC { 0x76, 0x80, 0x90, 0xa0 } +#define ISAPNP_MEM32_BASE_31_24 0x0 +#define ISAPNP_MEM32_BASE_23_16 0x1 +#define ISAPNP_MEM32_BASE_15_8 0x2 +#define ISAPNP_MEM32_BASE_7_0 0x3 +#define ISAPNP_MEM32_CONTROL 0x4 +#define ISAPNP_MEM32_CONTROL_LIMIT 1 +#define ISAPNP_MEM32_CONTROL_16 2 +#define ISAPNP_MEM32_CONTROL_32 6 +#define ISAPNP_MEM32_LRANGE_31_24 0x5 +#define ISAPNP_MEM32_LRANGE_23_16 0x6 +#define ISAPNP_MEM32_LRANGE_15_8 0x7 +#define ISAPNP_MEM32_LRANGE_7_0 0x8 + +/* Small Tags */ +#define ISAPNP_TAG_VERSION_NUM 0x1 +#define ISAPNP_TAG_LOGICAL_DEV_ID 0x2 +#define ISAPNP_TAG_COMPAT_DEV_ID 0x3 +#define ISAPNP_TAG_IRQ_FORMAT 0x4 +#define ISAPNP_IRQTYPE_EDGE_PLUS 1 +#define ISAPNP_IRQTYPE_EDGE_MINUS 2 +#define ISAPNP_IRQTYPE_LEVEL_PLUS 4 +#define ISAPNP_IRQTYPE_LEVEL_MINUS 8 +#define ISAPNP_TAG_DMA_FORMAT 0x5 +#define ISAPNP_DMAWIDTH_8 0x00 +#define ISAPNP_DMAWIDTH_8_16 0x01 +#define ISAPNP_DMAWIDTH_16 0x02 +#define ISAPNP_DMAWIDTH_RESERVED 0x03 +#define ISAPNP_DMAWIDTH_MASK 0x03 +#define ISAPNP_DMAATTR_BUS_MASTER 0x04 +#define ISAPNP_DMAATTR_INCR_8 0x08 +#define ISAPNP_DMAATTR_INCR_16 0x10 +#define ISAPNP_DMAATTR_MASK 0x1c +#define ISAPNP_DMASPEED_COMPAT 0x00 +#define ISAPNP_DMASPEED_A 0x20 +#define ISAPNP_DMASPEED_B 0x40 +#define ISAPNP_DMASPEED_F 0x60 +#define ISAPNP_DMASPEED_MASK 0x60 +#define ISAPNP_TAG_DEP_START 0x6 +#define ISAPNP_DEP_PREFERRED 0x0 +#define ISAPNP_DEP_ACCEPTABLE 0x1 +#define ISAPNP_DEP_FUNCTIONAL 0x2 +#define ISAPNP_DEP_RESERVED 0x3 +#define ISAPNP_DEP_MASK 0x3 +#define ISAPNP_DEP_UNSET 0x80 /* Internal */ +#define ISAPNP_DEP_CONFLICTING 0x81 /* Internal */ +#define ISAPNP_TAG_DEP_END 0x7 +#define ISAPNP_TAG_IO_PORT_DESC 0x8 +#define ISAPNP_IOFLAGS_16 0x1 +#define ISAPNP_TAG_FIXED_IO_PORT_DESC 0x9 +#define ISAPNP_TAG_RESERVED1 0xa +#define ISAPNP_TAG_RESERVED2 0xb +#define ISAPNP_TAG_RESERVED3 0xc +#define ISAPNP_TAG_RESERVED4 0xd +#define ISAPNP_TAG_VENDOR_DEF 0xe +#define ISAPNP_TAG_END 0xf + +/* Large Tags */ +#define ISAPNP_LARGE_TAG 0x80 +#define ISAPNP_TAG_MEM_RANGE_DESC 0x81 +#define ISAPNP_MEMATTR_WRITEABLE 0x01 +#define ISAPNP_MEMATTR_CACHEABLE 0x02 +#define ISAPNP_MEMATTR_HIGH_ADDR 0x04 +#define ISAPNP_MEMATTR_SHADOWABLE 0x20 +#define ISAPNP_MEMATTR_ROM 0x40 +#define ISAPNP_MEMATTR_MASK 0x67 +#define ISAPNP_MEMWIDTH_8 0x00 +#define ISAPNP_MEMWIDTH_16 0x08 +#define ISAPNP_MEMWIDTH_8_16 0x10 +#define ISAPNP_MEMWIDTH_32 0x18 +#define ISAPNP_MEMWIDTH_MASK 0x18 +#define ISAPNP_TAG_ANSI_IDENT_STRING 0x82 +#define ISAPNP_TAG_UNICODE_IDENT_STRING 0x83 +#define ISAPNP_TAG_VENDOR_DEFINED 0x84 +#define ISAPNP_TAG_MEM32_RANGE_DESC 0x85 +#define ISAPNP_TAG_FIXED_MEM32_RANGE_DESC 0x86 + +#endif /* _DEV_ISA_ISAPNPREG_H_ */ diff --git a/Targets/Bonito2F7inch/include/pmon_target.h b/Targets/Bonito2F7inch/include/pmon_target.h new file mode 100644 index 00000000..14cf0fc7 --- /dev/null +++ b/Targets/Bonito2F7inch/include/pmon_target.h @@ -0,0 +1,65 @@ +/* $Id: pmon_target.h,v 1.1.1.1 2006/06/29 06:43:25 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include + +#ifdef SBD_DEBUG +#define SBD_DISPLAY(text, code) /* No display function */ +#else +void hexserial __P((int)); +#define SBD_DISPLAY(text, code) tgt_display(text, code) +#endif + +/* + * Name of envvar that has to be set to enable expert mode. + */ +#define EXPERT "galileoexpert" + +/* + * Target arch specifics + */ +#define HAVE_QUAD /* Native 64 bit integers */ + +/* + * Boot loader parameters. + */ + +#define TGT_BOOT_ADR 0x80400000 /* Load 4 meg up. */ +#define TGT_BOOT_SIZ 0x00002000 /* Suck in 8k */ +#define TGT_BOOT_OFF 0x00000400 /* Start reading from byte 1024 */ + +/* + * Target dependent CLIENTPC settings + */ +#define CLIENTPC 0x80100000 +#define SETCLIENTPC "80100000" diff --git a/Targets/Bonito2F7inch/include/prid.h b/Targets/Bonito2F7inch/include/prid.h new file mode 100644 index 00000000..dbc21e1f --- /dev/null +++ b/Targets/Bonito2F7inch/include/prid.h @@ -0,0 +1,74 @@ +/* + * mips/prid.h: MIPS processor ID values (cp_imp field). + * + * Copyright (c) 1998-1999, Algorithmics Ltd. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the "Free MIPS" License Agreement, a copy of + * which is available at: + * + * http://www.algor.co.uk/ftp/pub/doc/freemips-license.txt + * + * You may not, however, modify or remove any part of this copyright + * message if this program is redistributed or reused in whole or in + * part. + * + * 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 + * "Free MIPS" License for more details. + */ + +/* + * MIPS CPU types + */ +#define PRID_R2000 0x01 /* MIPS R2000 CPU ISA I */ +#define PRID_R3000 0x02 /* MIPS R3000 CPU ISA I */ +#define PRID_R6000 0x03 /* MIPS R6000 CPU ISA II */ +#define PRID_R4000 0x04 /* MIPS R4000/4400 CPU ISA III */ +#define PRID_LR33K 0x05 /* LSI Logic R3000 derivate ISA I */ +#define PRID_R6000A 0x06 /* MIPS R6000A CPU ISA II */ +#define PRID_R3IDT 0x07 /* IDT R3000 derivates ISA I */ +#define PRID_R3IDT_R3041 0x07 /* R3041 (cp_rev field) */ +#define PRID_R3IDT_R36100 0x10 /* R36100 (cp_rev field) */ +#define PRID_R10000 0x09 /* MIPS R10000/T5 CPU ISA IV */ +#define PRID_R4200 0x0a /* MIPS R4200 CPU (ICE) ISA III */ +#define PRID_R4300 0x0b /* NEC VR4300 CPU ISA III */ +#define PRID_R4100 0x0c /* NEC VR4100 CPU ISA III */ +#define PRID_R8000 0x10 /* MIPS R8000 Blackbird/TFP ISA IV */ +#define PRID_RC6457X 0x15 /* IDT RC6457X CPU ISA IV */ +#define PRID_R4600 0x20 /* QED R4600 Orion ISA III */ +#define PRID_R4700 0x21 /* QED R4700 Orion ISA III */ +#define PRID_R3900 0x22 /* Toshiba/Philips R3900 CPU ISA I */ +#define PRID_R4650 0x22 /* QED R4650/R4640 CPU ISA III */ +#define PRID_R5000 0x23 /* MIPS R5000 CPU ISA IV */ +#define PRID_RC3236X 0x26 /* IDT RC3236X CPU ISA IV */ +#define PRID_RM7000 0x27 /* QED RM7000 CPU ISA IV */ +#define PRID_RM52XX 0x28 /* QED RM52XX CPU ISA IV */ +#define PRID_RC6447X 0x30 /* IDT RC6447X CPU ISA III */ +#define PRID_R5400 0x54 /* NEC Vr5400 CPU ISA IV */ +#define PRID_JADE 0x80 /* MIPS JADE ISA MIPS32 */ + +/* + * MIPS FPU types + */ +#define PRID_SOFT 0x00 /* Software emulation ISA I */ +#define PRID_R2360 0x01 /* MIPS R2360 FPC ISA I */ +#define PRID_R2010 0x02 /* MIPS R2010 FPC ISA I */ +#define PRID_R3010 0x03 /* MIPS R3010 FPC ISA I */ +#define PRID_R6010 0x04 /* MIPS R6010 FPC ISA II */ +#define PRID_R4010 0x05 /* MIPS R4000/R4400 FPC ISA II */ +#define PRID_LR33010 0x06 /* LSI Logic derivate ISA I */ +#define PRID_R10010 0x09 /* MIPS R10000/T5 FPU ISA IV */ +#define PRID_R4210 0x0a /* MIPS R4200 FPC (ICE) ISA III */ +#define PRID_UNKF1 0x0b /* unnanounced product cpu ISA III */ +#define PRID_R8010 0x10 /* MIPS R8000 Blackbird/TFP ISA IV */ +#define PRID_RC6457XF 0x15 /* IDT RC6457X FPU ISA IV */ +#define PRID_R4610 0x20 /* QED R4600 Orion ISA III */ +#define PRID_R3SONY 0x21 /* Sony R3000 based FPU ISA I */ +#define PRID_R3910 0x22 /* Toshiba/Philips R3900 FPU ISA I */ +#define PRID_R5010 0x23 /* MIPS R5000 FPU ISA IV */ +#define PRID_RM7000F 0x27 /* QED RM7000 FPU ISA IV */ +#define PRID_RM52XXF 0x28 /* QED RM52X FPU ISA IV */ +#define PRID_RC6447XF 0x30 /* IDT RC6447X FPU ISA III */ +#define PRID_R5400F 0x54 /* NEC Vr5400 FPU ISA IV */ diff --git a/Targets/Bonito2F7inch/include/ri.h b/Targets/Bonito2F7inch/include/ri.h new file mode 100644 index 00000000..b1875f90 --- /dev/null +++ b/Targets/Bonito2F7inch/include/ri.h @@ -0,0 +1,255 @@ +typedef void * vaddr_t_l; + +#define MIPSInst(x) x + +#define I_OPCODE_SFT 26 +#define MIPSInst_OPCODE(x) (MIPSInst(x) >> I_OPCODE_SFT) + +#define I_JTARGET_SFT 0 +#define MIPSInst_JTARGET(x) (MIPSInst(x) & 0x03ffffff) + +#define I_RS_SFT 21 +#define MIPSInst_RS(x) ((MIPSInst(x) & 0x03e00000) >> I_RS_SFT) + +#define I_RT_SFT 16 +#define MIPSInst_RT(x) ((MIPSInst(x) & 0x001f0000) >> I_RT_SFT) + +#define I_IMM_SFT 0 +#define MIPSInst_SIMM(x) ((int)((short)(MIPSInst(x) & 0xffff))) +#define MIPSInst_UIMM(x) (MIPSInst(x) & 0xffff) + +#define I_CACHEOP_SFT 18 +#define MIPSInst_CACHEOP(x) ((MIPSInst(x) & 0x001c0000) >> I_CACHEOP_SFT) + +#define I_CACHESEL_SFT 16 +#define MIPSInst_CACHESEL(x) ((MIPSInst(x) & 0x00030000) >> I_CACHESEL_SFT) + +#define I_RD_SFT 11 +#define MIPSInst_RD(x) ((MIPSInst(x) & 0x0000f800) >> I_RD_SFT) + +#define I_RE_SFT 6 +#define MIPSInst_RE(x) ((MIPSInst(x) & 0x000007c0) >> I_RE_SFT) + +#define I_FUNC_SFT 0 +#define MIPSInst_FUNC(x) (MIPSInst(x) & 0x0000003f) + +#define I_FFMT_SFT 21 +#define MIPSInst_FFMT(x) ((MIPSInst(x) & 0x01e00000) >> I_FFMT_SFT) + +#define I_FT_SFT 16 +#define MIPSInst_FT(x) ((MIPSInst(x) & 0x001f0000) >> I_FT_SFT) + +#define I_FS_SFT 11 +#define MIPSInst_FS(x) ((MIPSInst(x) & 0x0000f800) >> I_FS_SFT) + +#define I_FD_SFT 6 +#define MIPSInst_FD(x) ((MIPSInst(x) & 0x000007c0) >> I_FD_SFT) + +#define I_FR_SFT 21 +#define MIPSInst_FR(x) ((MIPSInst(x) & 0x03e00000) >> I_FR_SFT) + +#define I_FMA_FUNC_SFT 2 +#define MIPSInst_FMA_FUNC(x) ((MIPSInst(x) & 0x0000003c) >> I_FMA_FUNC_SFT) + +#define I_FMA_FFMT_SFT 0 +#define MIPSInst_FMA_FFMT(x) (MIPSInst(x) & 0x00000003) + +#define REG_TO_VA_l (vaddr_t_l) +#define VA_TO_REG_l (unsigned long) + +#define CAUSEB_BD 31 +#define CAUSEF_BD (1 << 31) + + +typedef unsigned int mips_instruction; + +/* + * Major opcodes; before MIPS IV cop1x was called cop3. + */ +enum major_op { + spec_op, bcond_op, j_op, jal_op, + beq_op, bne_op, blez_op, bgtz_op, + addi_op, addiu_op, slti_op, sltiu_op, + andi_op, ori_op, xori_op, lui_op, + cop0_op, cop1_op, cop2_op, cop1x_op, + beql_op, bnel_op, blezl_op, bgtzl_op, + daddi_op, daddiu_op, ldl_op, ldr_op, + major_1c_op, jalx_op, major_1e_op, major_1f_op, + lb_op, lh_op, lwl_op, lw_op, + lbu_op, lhu_op, lwr_op, lwu_op, + sb_op, sh_op, swl_op, sw_op, + sdl_op, sdr_op, swr_op, cache_op, + ll_op, lwc1_op, lwc2_op, pref_op, + lld_op, ldc1_op, ldc2_op, ld_op, + sc_op, swc1_op, swc2_op, major_3b_op, /* Opcode 0x3b is unused */ + scd_op, sdc1_op, sdc2_op, sd_op +}; + +/* + * func field of spec opcode. + */ +enum spec_op { + sll_op, movc_op, srl_op, sra_op, + sllv_op, srlv_op, srav_op, spec1_unused_op, /* Opcode 0x07 is unused */ + jr_op, jalr_op, movz_op, movn_op, + syscall_op, break_op, spim_op, sync_op, + mfhi_op, mthi_op, mflo_op, mtlo_op, + dsllv_op, spec2_unused_op, dsrlv_op, dsrav_op, + mult_op, multu_op, div_op, divu_op, + dmult_op, dmultu_op, ddiv_op, ddivu_op, + add_op, addu_op, sub_op, subu_op, + and_op, or_op, xor_op, nor_op, + spec3_unused_op, spec4_unused_op, slt_op, sltu_op, + dadd_op, daddu_op, dsub_op, dsubu_op, + tge_op, tgeu_op, tlt_op, tltu_op, + teq_op, spec5_unused_op, tne_op, spec6_unused_op, + dsll_op, spec7_unused_op, dsrl_op, dsra_op, + dsll32_op, spec8_unused_op, dsrl32_op, dsra32_op +}; + +/* + * rt field of bcond opcodes. + */ +enum rt_op { + bltz_op, bgez_op, bltzl_op, bgezl_op, + spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07, + tgei_op, tgeiu_op, tlti_op, tltiu_op, + teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op, + bltzal_op, bgezal_op, bltzall_op, bgezall_op + /* + * The others (0x14 - 0x1f) are unused. + */ +}; + +/* + * rs field of cop opcodes. + */ +enum cop_op { + mfc_op = 0x00, dmfc_op = 0x01, + cfc_op = 0x02, mtc_op = 0x04, + dmtc_op = 0x05, ctc_op = 0x06, + bc_op = 0x08, cop_op = 0x10, + copm_op = 0x18 +}; + +/* + * rt field of cop.bc_op opcodes + */ + +enum bcop_op { + bcf_op, bct_op, bcfl_op, bctl_op +}; + +/* + * func field of cop0 coi opcodes. + */ +enum cop0_coi_func { + tlbr_op = 0x01, tlbwi_op = 0x02, + tlbwr_op = 0x06, tlbp_op = 0x08, + rfe_op = 0x10, eret_op = 0x18 +}; + +/* + * func field of cop0 com opcodes. + */ +enum cop0_com_func { + tlbr1_op = 0x01, tlbw_op = 0x02, + tlbp1_op = 0x08, dctr_op = 0x09, + dctw_op = 0x0a +}; + +/* + * fmt field of cop1 opcodes. + */ +enum cop1_fmt { + s_fmt, d_fmt, e_fmt, q_fmt, + w_fmt, l_fmt +}; + +/* + * func field of cop1 instructions using d, s or w format. + */ +enum cop1_sdw_func { + fadd_op = 0x00, fsub_op = 0x01, + fmul_op = 0x02, fdiv_op = 0x03, + fsqrt_op = 0x04, fabs_op = 0x05, + fmov_op = 0x06, fneg_op = 0x07, + froundl_op = 0x08, ftruncl_op = 0x09, + fceill_op = 0x0a, ffloorl_op = 0x0b, + fround_op = 0x0c, ftrunc_op = 0x0d, + fceil_op = 0x0e, ffloor_op = 0x0f, + fmovc_op = 0x11, fmovz_op = 0x12, + fmovn_op = 0x13, frecip_op = 0x15, + frsqrt_op = 0x16, fcvts_op = 0x20, + fcvtd_op = 0x21, fcvte_op = 0x22, + fcvtw_op = 0x24, fcvtl_op = 0x25, + fcmp_op = 0x30 +}; + +/* + * func field of cop1x opcodes (MIPS IV). + */ +enum cop1x_func { + lwxc1_op = 0x00, ldxc1_op = 0x01, + pfetch_op = 0x07, swxc1_op = 0x08, + sdxc1_op = 0x09, madd_s_op = 0x20, + madd_d_op = 0x21, madd_e_op = 0x22, + msub_s_op = 0x28, msub_d_op = 0x29, + msub_e_op = 0x2a, nmadd_s_op = 0x30, + nmadd_d_op = 0x31, nmadd_e_op = 0x32, + nmsub_s_op = 0x38, nmsub_d_op = 0x39, + nmsub_e_op = 0x3a +}; + +/* + * func field for mad opcodes (MIPS IV). + */ +enum mad_func { + madd_op = 0x08, msub_op = 0x0a, + nmadd_op = 0x0c, nmsub_op = 0x0e +}; + +struct pt_regs { + /* Pad bytes for argument save space on the stack. */ + unsigned long pad0[6]; + + /* Saved main processor registers. */ + unsigned long regs[32]; + + /* Other saved registers. */ + unsigned long lo; + unsigned long hi; + + /* + * saved cp0 registers + */ + unsigned long cp0_epc; + unsigned long cp0_badvaddr; + unsigned long cp0_status; + unsigned long cp0_cause; +}; + +#define SIGHUP 1 /* Hangup (POSIX). */ +#define SIGINT 2 /* Interrupt (ANSI). */ +#define SIGQUIT 3 /* Quit (POSIX). */ +#define SIGILL 4 /* Illegal instruction (ANSI). */ +#define SIGTRAP 5 /* Trace trap (POSIX). */ +#define SIGEMT 7 +#define SIGFPE 8 /* Floating-point exception (ANSI). */ +#define SIGKILL 9 /* Kill, unblockable (POSIX). */ +#define SIGBUS 10 /* BUS error (4.2 BSD). */ +#define SIGSEGV 11 /* Segmentation violation (ANSI). */ +#define SIGSYS 12 +#define SIGPIPE 13 /* Broken pipe (POSIX). */ +#define SIGALRM 14 /* Alarm clock (POSIX). */ +#define SIGTERM 15 /* Termination (ANSI). */ +#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ +#define SIGPWR 19 /* Power failure restart (System V). */ +#define SIGPOLL SIGIO /* Pollable event occurred (System V). */ +//bjzheng +#define check_axs(pc,a,s) \ + if ((long)(~(pc) & ((a) | ((a)+(s)))) < 0) \ + return -1; + +#define user_mode(regs) ((regs)->cp0_status & 0x10) +extern int do_ri(struct pt_regs *); diff --git a/Targets/Bonito2F7inch/include/sbd.h b/Targets/Bonito2F7inch/include/sbd.h new file mode 100644 index 00000000..e78ffd2a --- /dev/null +++ b/Targets/Bonito2F7inch/include/sbd.h @@ -0,0 +1,231 @@ +/* + * p6032/sbd.h: Algorithmics P-6032 board definition header file + * + * Copyright (c) 2000 Algorithmics Ltd - all rights reserved. + * + * This program is NOT free software, it is supplied under the terms + * of the SDE-MIPS License Agreement, a copy of which is available at: + * + * http://www.algor.co.uk/algor/info/sde-license.pdf + * + * Any company which has obtained and signed a valid SDE-MIPS license + * may use and modify this software internally and use (without + * restrictions) any derived binary. You may not, however, + * redistribute this in whole or in part as source code, nor may you + * modify or remove any part of this copyright message. + */ + +#ifndef __SBD_H__ +#define __SBD_H__ + +#ifndef MHZ +/* fastest possible pipeline clock */ +#define MHZ 200 +#endif + +#ifndef SYSCLK_MHZ +/* fastest possible bus clock */ +#define SYSCLK_MHZ 100 +#endif + +#define RAMCYCLE 60 /* ~60ns dram cycle */ +#define ROMCYCLE 800 /* ~1500ns rom cycle */ +#define CACHECYCLE (1000/MHZ) /* pipeline clock */ +#define CYCLETIME CACHECYCLE +#define CACHEMISS (CYCLETIME * 6) + +/* + * rough scaling factors for 2 instruction DELAY loop to get 1ms and 1us delays + */ +#define ASMDELAY(ns,icycle) \ + (((ns) + (icycle)) / ((icycle) * 2)) + +#define CACHENS(ns) ASMDELAY((ns), CACHECYCLE) +#define RAMNS(ns) ASMDELAY((ns), CACHEMISS+RAMCYCLE) +#define ROMNS(ns) ASMDELAY((ns), CACHEMISS+ROMCYCLE) +#define CACHEUS(us) ASMDELAY((us)*1000, CACHECYCLE) +#define RAMUS(us) ASMDELAY((us)*1000, CACHEMISS+RAMCYCLE) +#define ROMUS(us) ASMDELAY((us)*1000, CACHEMISS+ROMCYCLE) +#define CACHEMS(ms) ((ms) * ASMDELAY(1000000, CACHECYCLE)) +#define RAMMS(ms) ((ms) * ASMDELAY(1000000, CACHEMISS+RAMCYCLE)) +#define ROMMS(ms) ((ms) * ASMDELAY(1000000, CACHEMISS+ROMCYCLE)) + +#ifndef __ASSEMBLER__ +extern void _sbd_nsdelay (unsigned long); +#define nsdelay(ns) _sbd_nsdelay(ns) +#define usdelay(us) _sbd_nsdelay((us)*1000) +#define msdelay(ms) _sbd_nsdelay((ms)*1000000) +#endif + + +#define PCI_MEM_SPACE (BONITO_PCILO_BASE+0x00000000) /* 192MB */ +#define PCI_MEM_SPACE_SIZE BONITO_PCILO_SIZE +#define PCI_IO_SPACE BONITO_PCIIO_BASE /* 1MB */ +#define PCI_IO_SPACE_SIZE BONITO_PCIIO_SIZE +#define PCI_CFG_SPACE BONITO_PCICFG_BASE /* 512KB */ +#define PCI_CFG_SPACE_SIZE BONITO_PCICFG_SIZE +#define BOOTPROM_BASE BONITO_BOOT_BASE +#define BONITO_BASE BONITO_REG_BASE +#define CPLD_BASE (BONITO_DEV_BASE+0x00000) /* IOCS0 */ +#define LED_BASE (BONITO_DEV_BASE+0x40000) /* IOCS1 */ +#define IDE0_BASE (BONITO_DEV_BASE+0x80000) /* IOCS2 */ +#define IDE1_BASE (BONITO_DEV_BASE+0xc0000) /* IOCS3 */ +#define FLASH_BASE BONITO_FLASH_BASE +#define FLASH_SIZE BONITO_FLASH_SIZE +#define BOOT_BASE BONITO_BOOT_BASE +#define BOOT_SIZE BONITO_BOOT_SIZE +#define SOCKET_BASE BONITO_SOCKET_BASE +#define SOCKET_SIZE BONITO_SOCKET_SIZE + +#define PCI_IDSEL_SLOT1 13 +#define PCI_IDSEL_SLOT2 14 +#define PCI_IDSEL_SLOT3 15 +#define PCI_IDSEL_SLOT4 16 +#define PCI_IDSEL_I82371 17 +#define PCI_IDSEL_VIA686B 5 +#define PCI_IDSEL_ETH 18 +#define PCI_IDSEL_BONITO 19 + +/* Define UART baud rate and register layout */ +#define NS16550_HZ (24000000/13) +#ifdef __ASSEMBLER__ +#if #endian(big) +#define NSREG(x) ((x)^3) +#else +#define NSREG(x) (x) +#endif +#else +#define nsreg(x) unsigned char x +#if #endian(big) +#define nslayout(r0,r1,r2,r3) nsreg(r3); nsreg(r2); nsreg(r1); nsreg(r0) +#endif +#endif +#define UART0_BASE ISAPORT_BASE(UART0_PORT) +#define UART1_BASE ISAPORT_BASE(UART1_PORT) + +/* Bonito GPIO definitions */ +#define PIO_PCI_IRQA BONITO_GPIO_IOR(0) /* PCI IRQA */ +#define PIO_PCI_IRQB BONITO_GPIO_IOR(1) /* PCI IRQB */ +#define PIO_PCI_IRQC BONITO_GPIO_IOR(2) /* PCI IRQC */ +#define PIO_PCI_IRQD BONITO_GPIO_IOR(3) /* PCI IRQD */ +#define PIO_CPLDARB BONITO_GPIO_IOW(4) /* CPLD arbiter */ +#define PIO_PCIRESET BONITO_GPIO_IOW(5) /* PCI reset */ +#define PIO_ISA_NMI BONITO_GPIO_IN(0) /* ISA NMI */ +#define PIO_ISA_IRQ BONITO_GPIO_IN(1) /* ISA IRQ */ +#define PIO_ETH_IRQ BONITO_GPIO_IN(2) /* Ethernet IRQ */ +#define PIO_IDE_IRQ BONITO_GPIO_IN(3) /* Bonito IDE IRQ */ +#define PIO_UART1_IRQ BONITO_GPIO_IN(4) /* ISA IRQ3 */ +#define PIO_UART0_IRQ BONITO_GPIO_IN(5) /* ISA IRQ4 */ + + +/* ICU masks */ +#define ICU_PCI_IRQA BONITO_ICU_GPIO(0) +#define ICU_PCI_IRQB BONITO_ICU_GPIO(1) +#define ICU_PCI_IRQC BONITO_ICU_GPIO(2) +#define ICU_PCI_IRQD BONITO_ICU_GPIO(3) +#define ICU_NMI_IRQ BONITO_ICU_GPIN(0) +#define ICU_ISA_IRQ BONITO_ICU_GPIN(1) +#define ICU_ETH_IRQ BONITO_ICU_GPIN(2) +#define ICU_BIDE_IRQ BONITO_ICU_GPIN(3) +#define ICU_UART1_IRQ BONITO_ICU_GPIN(4) +#define ICU_UART0_IRQ BONITO_ICU_GPIN(5) +#define ICU_DRAMPERR BONITO_ICU_DRAMPERR +#define ICU_CPUPERR BONITO_ICU_CPUPERR +#define ICU_IDEDMA BONITO_ICU_IDEDMA +#define ICU_PCICOPIER BONITO_ICU_PCICOPIER +#define ICU_POSTEDRD BONITO_ICU_POSTEDRD +#define ICU_PCIIRQ BONITO_ICU_PCIIRQ +#define ICU_MASTERERR BONITO_ICU_MASTERERR +#define ICU_SYSTEMERR BONITO_ICU_SYSTEMERR +#define ICU_RETRYERR BONITO_ICU_RETRYERR +#define ICU_MBOXES BONITO_ICU_MBOXES + +/* default PIO input enable */ +#define PIO_IE (~(PIO_CPLDARB|PIO_PCIRESET)) + +/* ISA addresses */ +#define ISAPORT_BASE(x) (PCI_IO_SPACE + (x)) +#define ISAMEM_BASE(x) (PCI_MEM_SPACE + (x)) + +/* ISA i/o ports */ +#define DMA1_PORT 0x000 +#define ICU1_PORT 0x020 +#define CTC_PORT 0x040 +#define DIAG_PORT 0x061 +#define RTC_ADDR_PORT 0x070 +#define RTC_DATA_PORT 0x071 +#define KEYBD_PORT 0x060 +#define DMAPAGE_PORT 0x080 +#define SYSC_PORT 0x092 +#define ICU2_PORT 0x0a0 +#define DMA2_PORT 0x0c0 +#define IDE_PORT 0x1f0 +#define UART1_PORT 0x2f8 +#define UART0_PORT 0x3f8 +#define ECP_PORT 0x378 +#define CEN_LATCH_PORT 0x37c /* P5064 special */ +#define FDC_PORT 0x3f0 +#define SMB_PORT 0x7000 /* Intel convention? */ +#define GPIO_PORT 0xe000 /* FIXME: where should this go? */ +#define BMDMA_PORT 0xf000 /* Intel convention? */ + +/* ISA interrupt numbers */ +#define TIMER0_IRQ 0 +#define KEYBOARD_IRQ 1 +#define ICU2_IRQ 2 +#define SERIAL2_IRQ 3 +#define SERIAL1_IRQ 4 +#define PARALLEL2_IRQ 5 +#define FDC_IRQ 6 +#define PARALLEL1_IRQ 7 +#define RTC_IRQ 8 +#define NET_IRQ 9 +#define MATH_IRQ 13 +#define IDE_IRQ 14 + + +#define _SBD_FLASHENV 0 /* Store environment in flash #0 */ +#undef _SBD_RTCENV /* Store environment in RTC */ + +#define RTC_HZ 16 +#define RTC_RATE RTC_RATE_16Hz + +#ifndef __ASSEMBLER__ + +/* prototypes for board specific functions */ + +#if defined(FLASHDEV_OK) +extern flashcookie_t _sbd_bflashopen (paddr_t); +extern flashcookie_t _sbd_uflashopen (paddr_t); +#endif +/* urgh - find some other way to prototype these functions FIXME */ +#if defined(__FLASHROM_H__) +extern int _flash8_probe (struct fromcookie *fcp, unsigned int o); +extern int _flash16_probe (struct fromcookie *fcp, unsigned int o); +#endif + +#if !defined(PMON) +extern void _bonito_iobc_wbinv (unsigned int pa, size_t nb); +extern void _bonito_iobc_inval (unsigned int pa, size_t nb); +extern void _bonito_clean_dcache (void *va, size_t nb); +extern void _bonito_inval_dcache (void *va, size_t nb); +#endif + +#endif + +#if !defined(__ASSEMBLER__) && !defined(inb) +/* i/o port access ala 80x86 for ISA bus peripherals */ +unsigned char inb (unsigned int); +unsigned short inw (unsigned int); +unsigned long inl (unsigned int); +void outb (unsigned int, unsigned char); +void outw (unsigned int, unsigned short); +void outl (unsigned int, unsigned long); +void * ioport_map (unsigned int); +#endif + +/* divert device drivers to Bonito-specific cache cleaning code */ +#define _sbd_clean_dcache _bonito_clean_dcache +#define _sbd_inval_dcache _bonito_inval_dcache + +#endif /* __SBD_H__ */ diff --git a/Targets/Bonito2F7inch/include/via686b.h b/Targets/Bonito2F7inch/include/via686b.h new file mode 100644 index 00000000..e5013d80 --- /dev/null +++ b/Targets/Bonito2F7inch/include/via686b.h @@ -0,0 +1,48 @@ +/* + * via686b.h: VIA 686B southbridge + * + * Copyright (c) 2006, Lemote Ltd. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GPL License Agreement. + * + * You may not, however, modify or remove any part of this copyright + * message if this program is redistributed or reused in whole or in + * part. + * + * 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 + * GPL License for more details. + */ + +/*** CONFIG REGISTERS AND VALUES */ +#define SMBUS_IO_BASE_ADDR 0x90 +#define SMBUS_IO_BASE_VALUE 0xeee1 + +#define SMBUS_HOST_CONFIG_ADDR 0xd2 +#define SMBUS_HOST_CONFIG_ENABLE_BIT 0x1 + +#define SMBUS_HOST_SLAVE_COMMAND 0xd3 + +/*** SMBUS IO REGISTERS AND VALUES */ +#define SMBUS_HOST_STATUS ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x0) +#define SMBUS_HOST_STATUS_BUSY 0x1 +#define SMBUS_HOST_STATUS_INT 0x2 +#define SMBUS_HOST_STATUS_DEVERR 0x4 +#define SMBUS_HOST_STATUS_COLLISION 0x8 +#define SMBUS_HOST_STATUS_FAIL 0x10 + +#define SMBUS_HOST_CONTROL ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x2) +#define SMBUS_HOST_CONTROL_START 0x40 +#define SMBUS_HOST_CONTROL_KILL 0x2 +#define SMBUS_HOST_CONTROL_INTEN 0x1 + +#define SMBUS_HOST_COMMAND ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x3) + +#define SMBUS_HOST_ADDRESS ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x4) +#define SMBUS_HOST_ADDRESS_READOP 0x1 +#define SMBUS_HOST_ADDRESS_WRITEOP 0x0 + +#define SMBUS_HOST_DATA0 ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x5) +#define SMBUS_HOST_DATA1 ((SMBUS_IO_BASE_VALUE & 0xfff0) + 0x6) diff --git a/Targets/Bonito2F7inch/pci/cs5536_io.c b/Targets/Bonito2F7inch/pci/cs5536_io.c new file mode 100644 index 00000000..de8787f2 --- /dev/null +++ b/Targets/Bonito2F7inch/pci/cs5536_io.c @@ -0,0 +1,118 @@ +/* + * cs5536_io.h + * some basic access of msr read/write and gpio read/write. + * this access function only suitable before the virtual support module(VSM) + * working for some simple debugs. + * + * Author : jlliu + * Date : 07-07-04 + * + */ +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include + + +/******************************************************************************/ + +/* + * rdmsr : read 64bits data from the cs5536 MSR register + */ +void _rdmsr(u32 msr, u32 *hi, u32 *lo) +{ + u32 type = 0x00000; + u32 addr; + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xf4; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = msr; + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xf8; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *lo = *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)); + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xfc; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *hi = *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)); + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + return; +} + +/* + * wrmsr : write 64bits data to the cs5536 MSR register + */ +void _wrmsr(u32 msr, u32 hi, u32 lo) +{ + u32 type = 0x00000; + u32 addr; + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xf4; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = msr; + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xf8; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = lo; + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + + addr = (PCI_BUS_CS5536 << 16) | (1 << (PCI_IDSEL_CS5536 + 11) ) | (0 << 8) | 0xfc; + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + BONITO_PCIMAP_CFG = (addr >> 16) | type; + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = hi; + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + } + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + } + + + return; +} diff --git a/Targets/Bonito2F7inch/pci/cs5536_io.h b/Targets/Bonito2F7inch/pci/cs5536_io.h new file mode 100644 index 00000000..1af01157 --- /dev/null +++ b/Targets/Bonito2F7inch/pci/cs5536_io.h @@ -0,0 +1,25 @@ +/* + * cs5536_io.h + * some basic access of msr read/write and gpio read/write. + * this access function only suitable before the virtual support module(VSM) + * working for some simple debugs. + * + * Author : jlliu + * Date : 07-07-04 + * + */ + +#include + +/******************************************************************************/ + +/* + * rdmsr : read 64bits data from the cs5536 MSR register + */ +extern void _rdmsr(u32 msr, u32 *hi, u32 *lo); + +/* + * wrmsr : write 64bits data to the cs5536 MSR register + */ +extern void _wrmsr(u32 msr, u32 hi, u32 lo); + diff --git a/Targets/Bonito2F7inch/pci/cs5536_vsm.c b/Targets/Bonito2F7inch/pci/cs5536_vsm.c new file mode 100644 index 00000000..c9bb53cc --- /dev/null +++ b/Targets/Bonito2F7inch/pci/cs5536_vsm.c @@ -0,0 +1,2003 @@ +/* + * pci_machdep_cs5536.c + * the Virtual Support Module(VSM) for virtulize the PCI configure + * space. so user can access the PCI configure space directly as + * a normal multi-function PCI device which following the PCI-2.2 spec. + * + * Author : jlliu + * Date : 07-07-05 + * + */ +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include "cs5536_io.h" + +/* FOR INCLUDING THE RX REGISTERS */ +#define SB_RX +// NOTE THE IDE DMA OPERATION, BASE ADDR CONFIG RIGHT OR WRONG??? + +/************************************************************************/ + +/* + * divil_lbar_enable_disable : enable/disable the divil module bar space. + */ +static void divil_lbar_enable_disable(int enable) +{ + u32 hi, lo; + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_IRQ), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_IRQ), hi, lo); + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), hi, lo); + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_GPIO), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_GPIO), hi, lo); + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), hi, lo); + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_PMS), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_PMS), hi, lo); + + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_ACPI), &hi, &lo); + if(enable) + hi |= 0x01; + else + hi &= ~0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_ACPI), hi, lo); + + return; +} + +/******************************************************************************/ + +/* + * The following functions are not implemented in pmon. + */ +static void pci_flash_write_reg(int reg, pcireg_t value) +{ + return; +} + +static pcireg_t pci_flash_read_reg(int reg) +{ + return 0xffffffff; +} + +/*******************************************************************************/ + +/* + * isa_write : isa write transfering. + * WE assume that the ISA is not the BUS MASTER. + */ +static void pci_isa_write_reg(int reg, pcireg_t value) +{ + u32 hi, lo; + u32 temp; + u32 softcom; + + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + softcom = lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // command + if( value & PCI_COMMAND_IO_ENABLE ){ + divil_lbar_enable_disable(1); + }else{ + divil_lbar_enable_disable(0); + } + /* BUS MASTER : is it 0 for SB??? yes...*/ + /* PER response enable or disable. */ + if( value & PCI_COMMAND_PARITY_ENABLE ){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + lo |= SB_PARE_ERR_EN; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + }else{ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + lo &= ~SB_PARE_ERR_EN; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + // status + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + temp = lo & 0x0000ffff; + if( (value & PCI_STATUS_TARGET_TARGET_ABORT) && + (lo & SB_SYSE_ERR_EN) ){ + temp |= SB_SYSE_ERR_FLAG; + } + if( (value & PCI_STATUS_MASTER_TARGET_ABORT) && + (lo & SB_TAR_ERR_EN) ){ + temp |= SB_TAR_ERR_FLAG; + } + if( (value & PCI_STATUS_MASTER_ABORT) && + (lo & SB_MAR_ERR_EN) ){ + temp |= SB_MAR_ERR_FLAG; + } + if( (value & PCI_STATUS_PARITY_DETECT) && + (lo & SB_PARE_ERR_EN) ){ + temp |= SB_PARE_ERR_FLAG; + } + lo = temp; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + break; + case PCI_BHLC_REG : + value &= 0x0000ff00; + _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo); + hi &= 0xffffff00; + hi |= (value >> 8); + _wrmsr(SB_MSR_REG(SB_CTRL), hi, lo); + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_SMB_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000fff8; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_SMB_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_SMB_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R0), hi, lo); +#endif + } + break; + case PCI_BAR1_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_GPIO_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000ff00; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_GPIO), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_GPIO_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_GPIO_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R1), hi, lo); +#endif + } + break; + case PCI_BAR2_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_MFGPT_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000ffc0; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_MFGPT_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_MFGPT_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R2), hi, lo); +#endif + } + break; + case PCI_BAR3_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_IRQ_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + } + if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000ffe0; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_IRQ), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_IRQ_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_IRQ_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R3), hi, lo); +#endif + } + break; + case PCI_BAR4_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_PMS_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000ff80; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_PMS), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_PMS_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_PMS_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R4), hi, lo); +#endif + } + break; + case PCI_BAR5_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_ACPI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x0000f001; + lo = value & 0x0000ffe0; + _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_ACPI), hi, lo); +#ifdef SB_RX + hi = ((value & 0x000ffffc) << 12) | ((CS5536_ACPI_LENGTH - 4) << 12) | 0x01; + //hi = ((value & 0x000fffff) << 12) | ((CS5536_ACPI_LENGTH) << 12) | 0x03; + lo = ((value & 0x000ffffc) << 12) | 0x01; + _wrmsr(SB_MSR_REG(SB_R5), hi, lo); +#endif + } + break; + default : + break; + } + + return; +} + +/* + * isa_read : isa read transfering. + * we assume that the ISA is not the BUS MASTER. + */ +static pcireg_t pci_isa_read_reg(int reg) +{ + pcireg_t conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = 0; + _rdmsr(SB_MSR_REG(SB_CAP), &hi, &lo); /* jlliu : should get the correct value. */ + if( (lo != 0x0) && (lo != 0xffffffff) ){ + conf_data = (CS5536_ISA_DEVICE_ID << 16 | CS5536_VENDOR_ID); + } + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), &hi, &lo); + if(hi & 0x01){ + conf_data |= PCI_COMMAND_IO_ENABLE; + } + conf_data |= PCI_COMMAND_SPECIAL_ENABLE; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_EN){ + conf_data |= PCI_COMMAND_PARITY_ENABLE; + }else{ + conf_data &= ~PCI_COMMAND_PARITY_ENABLE; + } + // STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_SYSE_ERR_FLAG) + conf_data |= PCI_STATUS_TARGET_TARGET_ABORT; + if(lo & SB_TAR_ERR_FLAG) + conf_data |= PCI_STATUS_MASTER_TARGET_ABORT; + if(lo & SB_MAR_ERR_FLAG) + conf_data |= PCI_STATUS_MASTER_ABORT; + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_DETECT; + break; + case PCI_CLASS_REG : + _rdmsr(GLCP_MSR_REG(GLCP_CHIP_REV_ID), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_ISA_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo); + hi &= 0x000000f8; + conf_data = (PCI_NONE_BIST << 24) | (PCI_BRIDGE_HEADER_TYPE << 16) | + (hi << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + /* + * we only use the LBAR of DIVIL, no RCONF used. + * all of them are IO space. + */ + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_SMB_FLAG){ + conf_data = CS5536_SMB_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_SMB_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR1_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_GPIO_FLAG){ + conf_data = CS5536_GPIO_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_GPIO_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_GPIO), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR2_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_MFGPT_FLAG){ + conf_data = CS5536_MFGPT_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_MFGPT_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR3_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_IRQ_FLAG){ + conf_data = CS5536_IRQ_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_IRQ_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_IRQ), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR4_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_PMS_FLAG){ + conf_data = CS5536_PMS_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_PMS_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_PMS), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR5_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_ACPI_FLAG){ + conf_data = CS5536_ACPI_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_ACPI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_ACPI), &hi, &lo); + conf_data = lo & 0x0000ffff; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_ISA_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (PCI_INTERRUPT_PIN_NONE << 8) | 0x00; + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} + +/* + * ide_write : ide write transfering + */ +static void pci_ide_write_reg(int reg, pcireg_t value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MASTER_ENABLE){ + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + lo |= (0x03 << 4); + _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo); + }else{ + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + lo &= ~(0x03 << 4); + _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BHLC_REG : + value &= 0x0000ff00; + _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo); + hi &= 0xffffff00; + hi |= (value >> 8); + _wrmsr(SB_MSR_REG(SB_CTRL), hi, lo); + break; + case PCI_BAR4_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_IDE_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if(value & 0x01){ + hi = 0x00000000; + //lo = ((value & 0x0fffffff) << 4) | 0x001; + lo = (value & 0xfffffff0) | 0x1; + _wrmsr(IDE_MSR_REG(IDE_IO_BAR), hi, lo); +#ifdef SB_RX + hi = 0x60000000 | ((value & 0x000ff000) >> 12); + lo = 0x000ffff0 | ((value & 0x00000ffc) << 20); + _wrmsr(GLIU_MSR_REG(GLIU_IOD_BM2), hi, lo); +#endif + } + break; + case PCI_IDE_CFG_REG : + if(value == CS5536_IDE_FLASH_SIGNATURE){ + _rdmsr(DIVIL_MSR_REG(DIVIL_BALL_OPTS), &hi, &lo); + lo |= 0x01; + _wrmsr(DIVIL_MSR_REG(DIVIL_BALL_OPTS), hi, lo); + }else{ + hi = 0; + lo = value; + _wrmsr(IDE_MSR_REG(IDE_CFG), hi, lo); + } + break; + case PCI_IDE_DTC_REG : + hi = 0; + lo = value; + _wrmsr(IDE_MSR_REG(IDE_DTC), hi, lo); + break; + case PCI_IDE_CAST_REG : + hi = 0; + lo = value; + _wrmsr(IDE_MSR_REG(IDE_CAST), hi, lo); + break; + case PCI_IDE_ETC_REG : + hi = 0; + lo = value; + _wrmsr(IDE_MSR_REG(IDE_ETC), hi, lo); + break; + case PCI_IDE_PM_REG : + hi = 0; + lo = value; + _wrmsr(IDE_MSR_REG(IDE_INTERNAL_PM), hi, lo); + break; + default : + break; + } + + return; +} + +/* + * ide_read : ide read tranfering. + */ +static pcireg_t pci_ide_read_reg(int reg) +{ + pcireg_t conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = 0; + _rdmsr(IDE_MSR_REG(IDE_CAP), &hi, &lo); + if( (lo != 0x0) && (lo != 0xffffffff) ){ + conf_data = (CS5536_IDE_DEVICE_ID << 16 | CS5536_VENDOR_ID); + } + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(IDE_MSR_REG(IDE_IO_BAR), &hi, &lo); + if(lo & 0xfffffff0) + conf_data |= PCI_COMMAND_IO_ENABLE; + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + if( (lo & 0x30) == 0x30 ) + conf_data |= PCI_COMMAND_MASTER_ENABLE; + /* conf_data |= PCI_COMMAND_BACKTOBACK_ENABLE??? HOW TO GET..*/ + //STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(IDE_MSR_REG(IDE_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_IDE_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo); + hi &= 0x000000f8; + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (hi << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + conf_data = 0x00000000; + break; + case PCI_BAR1_REG : + conf_data = 0x00000000; + break; + case PCI_BAR2_REG : + conf_data = 0x00000000; + break; + case PCI_BAR3_REG : + conf_data = 0x00000000; + break; + case PCI_BAR4_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_IDE_FLAG){ + conf_data = CS5536_IDE_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_IDE_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(IDE_MSR_REG(IDE_IO_BAR), &hi, &lo); + //conf_data = lo >> 4; + conf_data = lo & 0xfffffff0; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR5_REG : + conf_data = 0x00000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_IDE_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (PCI_INTERRUPT_PIN_NONE << 8) | 0x00; + break; + case PCI_IDE_CFG_REG : + _rdmsr(IDE_MSR_REG(IDE_CFG), &hi, &lo); + conf_data = lo; + break; + case PCI_IDE_DTC_REG : + _rdmsr(IDE_MSR_REG(IDE_DTC), &hi, &lo); + conf_data = lo; + break; + case PCI_IDE_CAST_REG : + _rdmsr(IDE_MSR_REG(IDE_CAST), &hi, &lo); + conf_data = lo; + break; + case PCI_IDE_ETC_REG : + _rdmsr(IDE_MSR_REG(IDE_ETC), &hi, &lo); + conf_data = lo; + case PCI_IDE_PM_REG : + _rdmsr(IDE_MSR_REG(IDE_INTERNAL_PM), &hi, &lo); + conf_data = lo; + break; + + default : + conf_data = 0; + break; + } + + return conf_data; +} + +static void pci_acc_write_reg(int reg, u32 value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MASTER_ENABLE){ + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + lo |= (0x03 << 8); + _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo); + }else{ + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + lo &= ~(0x03 << 8); + _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_ACC_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if( value & 0x01 ){ + value &= 0xfffffffc; + hi = 0xA0000000 | ((value & 0x000ff000) >> 12); + lo = 0x000fff80 | ((value & 0x00000fff) << 20); + _wrmsr(GLIU_MSR_REG(GLIU_IOD_BM1), hi, lo); + } + break; + default : + break; + } + + return; +} + +static u32 pci_acc_read_reg(int reg) +{ + u32 hi, lo; + u32 conf_data; + + switch(reg){ + case PCI_ID_REG : + conf_data = (CS5536_ACC_DEVICE_ID << 16 | CS5536_VENDOR_ID); + break; + case PCI_COMMAND_STATUS_REG : + + conf_data = 0; + // COMMAND + _rdmsr(GLIU_MSR_REG(GLIU_IOD_BM1), &hi, &lo); + if( ( (lo & 0xfff00000) || (hi & 0x000000ff) ) + && ((hi & 0xf0000000) == 0xa0000000) ) + conf_data |= PCI_COMMAND_IO_ENABLE; + _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo); + if( (lo & 0x300) == 0x300 ) + conf_data |= PCI_COMMAND_MASTER_ENABLE; + /* conf_data |= PCI_COMMAND_BACKTOBACK_ENABLE??? HOW TO GET..*/ + //STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(ACC_MSR_REG(ACC_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_ACC_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (PCI_NORMAL_LATENCY_TIMER << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_ACC_FLAG){ + conf_data = CS5536_ACC_RANGE | PCI_MAPREG_TYPE_IO; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_ACC_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(GLIU_MSR_REG(GLIU_IOD_BM1), &hi, &lo); + conf_data = (hi & 0x000000ff) << 12; + conf_data |= (lo & 0xfff00000) >> 20; + conf_data |= 0x01; + conf_data &= ~0x02; + } + break; + case PCI_BAR1_REG : + conf_data = 0x000000; + break; + case PCI_BAR2_REG : + conf_data = 0x000000; + break; + case PCI_BAR3_REG : + conf_data = 0x000000; + break; + case PCI_BAR4_REG : + conf_data = 0x000000; + break; + case PCI_BAR5_REG : + conf_data = 0x000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_ACC_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_USB_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (0x01 << 8) | (0x00); + + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} + +/* + * ohci_write : ohci write tranfering. + */ +static void pci_ohci_write_reg(int reg, pcireg_t value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MASTER_ENABLE){ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + hi |= (1 << 2); + _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + hi &= ~(1 << 2); + _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo); + } + if(value & PCI_COMMAND_MEM_ENABLE){ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + hi |= (1 << 1); + _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + hi &= ~(1 << 1); + _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_OHCI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if( (value & 0x01) == 0x00 ){ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + //lo = (value & 0xffffff00) << 8; + lo = value; + _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo); + + hi = 0x40000000 | (value&0xff000000) >> 24; + lo = 0x000fffff | (value&0x00fff000) << 8; + _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM3), hi, lo); + } + break; + case PCI_INTERRUPT_REG : + value &= 0x000000ff; + break; + case PCI_USB_PM_REG : + break; + default : + break; + } + + return; +} + +/* + * ohci_read : ohci read transfering. + */ +static pcireg_t pci_ohci_read_reg(int reg) +{ + pcireg_t conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = 0; + _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo); + if( (lo != 0x0) && (lo != 0xffffffff) ){ + conf_data = (CS5536_OHCI_DEVICE_ID << 16 | CS5536_VENDOR_ID); + } + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + if(hi & 0x04) + conf_data |= PCI_COMMAND_MASTER_ENABLE; + if(hi & 0x02) + conf_data |= PCI_COMMAND_MEM_ENABLE; + // STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_OHCI_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (0x00 << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_OHCI_FLAG){ + conf_data = CS5536_OHCI_RANGE | PCI_MAPREG_TYPE_MEM; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_OHCI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + //conf_data = lo >> 8; + conf_data = lo & 0xffffff00; + conf_data &= ~0x0000000f; // 32bit mem + } + break; + case PCI_BAR1_REG : + conf_data = 0x000000; + break; + case PCI_BAR2_REG : + conf_data = 0x000000; + break; + case PCI_BAR3_REG : + conf_data = 0x000000; + break; + case PCI_BAR4_REG : + conf_data = 0x000000; + break; + case PCI_BAR5_REG : + conf_data = 0x000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_OHCI_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_USB_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (PCI_INTERRUPT_PIN_D << 8) | 0x00; + break; + case PCI_USB_PM_REG : + conf_data = 0; + break; + case 0x50 : + _rdmsr(GLIU_MSR_REG(GLIU_P2D_BM1), &hi, &lo); + //printf("p2d bm1 : hi = 0x%x, lo = 0x%x\n", hi, lo); + _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo); + //printf("usb ohci : hi = 0x%x, lo = 0x%x\n", hi, lo); + conf_data = 0; + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} + +#ifdef TEST_CS5536_USE_EHCI +static void pci_ehci_write_reg(int reg, u32 value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MASTER_ENABLE){ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi |= (1 << 2); + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi &= ~(1 << 2); + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + } + if(value & PCI_COMMAND_MEM_ENABLE){ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi |= (1 << 1); + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi &= ~(1 << 1); + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_EHCI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if( (value & 0x01) == 0x00 ){ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + lo = value; + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + + value &= 0xfffffff0; + hi = 0x40000000 | ((value & 0xff000000) >> 24); + lo = 0x000fffff | ((value & 0x00fff000) << 8); + _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM4), hi, lo); + } + break; + case PCI_EHCI_LEGSMIEN_REG : + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi &= 0x003f0000; + hi |= (value & 0x3f) << 16; + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + break; + case PCI_EHCI_FLADJ_REG : + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + hi &= ~0x00003f00; + hi |= value & 0x00003f00; + _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo); + break; + default : + break; + } + + return; +} + +static u32 pci_ehci_read_reg(int reg) +{ + u32 conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = (CS5536_EHCI_DEVICE_ID << 16 | CS5536_VENDOR_ID); + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + if(hi & 0x04) + conf_data |= PCI_COMMAND_MASTER_ENABLE; + if(hi & 0x02) + conf_data |= PCI_COMMAND_MEM_ENABLE; + // STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_EHCI_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (PCI_NORMAL_LATENCY_TIMER << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_EHCI_FLAG){ + conf_data = CS5536_EHCI_RANGE | PCI_MAPREG_TYPE_MEM; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_EHCI_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + conf_data = lo & 0xffffff00; + conf_data &= ~0x0000000f; // 32bit mem + } + break; + case PCI_BAR1_REG : + conf_data = 0x000000; + break; + case PCI_BAR2_REG : + conf_data = 0x000000; + break; + case PCI_BAR3_REG : + conf_data = 0x000000; + break; + case PCI_BAR4_REG : + conf_data = 0x000000; + break; + case PCI_BAR5_REG : + conf_data = 0x000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_EHCI_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_USB_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (0x01 << 8) | 0x00; + break; + case PCI_EHCI_LEGSMIEN_REG : + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + conf_data = (hi & 0x003f0000) >> 16; + break; + case PCI_EHCI_LEGSMISTS_REG : + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + conf_data = (hi & 0x3f000000) >> 24; + break; + case PCI_EHCI_FLADJ_REG : + _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo); + conf_data = hi & 0x00003f00; + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} +#else +static void pci_ehci_write_reg(int reg, u32 value) +{ + return; +} + +static u32 pci_ehci_read_reg(int reg) +{ + return 0xffffffff; +} + + +#endif + +#ifdef TEST_CS5536_USE_UDC +static void pci_udc_write_reg(int reg, u32 value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MASTER_ENABLE){ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + hi |= (1 << 2); + _wrmsr(USB_MSR_REG(USB_UDC), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + hi &= ~(1 << 2); + _wrmsr(USB_MSR_REG(USB_UDC), hi, lo); + } + if(value & PCI_COMMAND_MEM_ENABLE){ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + hi |= (1 << 1); + _wrmsr(USB_MSR_REG(USB_UDC), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + hi &= ~(1 << 1); + _wrmsr(USB_MSR_REG(USB_UDC), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_UDC_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if( (value & 0x01) == 0x00 ){ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + lo = value; + _wrmsr(USB_MSR_REG(USB_UDC), hi, lo); + + value &= 0xfffffff0; + hi = 0x40000000 | ((value & 0xff000000) >> 24); + lo = 0x000fffff | ((value & 0x00fff000) << 8); + _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM0), hi, lo); + } + break; + default : + break; + } + + return; +} + +static u32 pci_udc_read_reg(int reg) +{ + u32 conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = (CS5536_UDC_DEVICE_ID << 16 | CS5536_VENDOR_ID); + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + if(hi & 0x04) + conf_data |= PCI_COMMAND_MASTER_ENABLE; + if(hi & 0x02) + conf_data |= PCI_COMMAND_MEM_ENABLE; + // STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_UDC_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (0x00 << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_UDC_FLAG){ + conf_data = CS5536_UDC_RANGE | PCI_MAPREG_TYPE_MEM; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_UDC_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_UDC), &hi, &lo); + conf_data = lo & 0xfffff000; + conf_data &= ~0x0000000f; // 32bit mem + } + break; + case PCI_BAR1_REG : + conf_data = 0x000000; + break; + case PCI_BAR2_REG : + conf_data = 0x000000; + break; + case PCI_BAR3_REG : + conf_data = 0x000000; + break; + case PCI_BAR4_REG : + conf_data = 0x000000; + break; + case PCI_BAR5_REG : + conf_data = 0x000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_UDC_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_USB_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (0x01 << 8) | 0x00; + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} + +#else /* TEST_CS5536_USE_UDC */ + +static void pci_udc_write_reg(int reg, u32 value) +{ + return; +} + +static u32 pci_udc_read_reg(int reg) +{ + return 0xffffffff; +} + +#endif /* TEST_CS5536_USE_UDC */ + + +#ifdef TEST_CS5536_USE_OTG +static void pci_otg_write_reg(int reg, u32 value) +{ + u32 hi, lo; + + switch(reg){ + case PCI_COMMAND_STATUS_REG : + // COMMAND + if(value & PCI_COMMAND_MEM_ENABLE){ + _rdmsr(USB_MSR_REG(USB_OTG), &hi, &lo); + hi |= (1 << 1); + _wrmsr(USB_MSR_REG(USB_OTG), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_OTG), &hi, &lo); + hi &= ~(1 << 1); + _wrmsr(USB_MSR_REG(USB_OTG), hi, lo); + } + // STATUS + if(value & PCI_STATUS_PARITY_ERROR){ + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG){ + lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG; + _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo); + } + } + break; + case PCI_BAR0_REG : + if(value == PCI_BAR_RANGE_MASK){ + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo |= SOFT_BAR_OTG_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else if( (value & 0x01) == 0x00 ){ + _rdmsr(USB_MSR_REG(USB_OTG), &hi, &lo); + lo = value & 0xffffff00; + _wrmsr(USB_MSR_REG(USB_OTG), hi, lo); + + value &= 0xfffffff0; + hi = 0x40000000 | ((value & 0xff000000) >> 24); + lo = 0x000fffff | ((value & 0x00fff000) << 8); + _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM1), hi, lo); + } + break; + default : + break; + } + + return; +} + +static u32 pci_otg_read_reg(int reg) +{ + u32 conf_data; + u32 hi, lo; + + switch(reg){ + case PCI_ID_REG : + conf_data = (CS5536_OTG_DEVICE_ID << 16 | CS5536_VENDOR_ID); + break; + case PCI_COMMAND_STATUS_REG : + conf_data = 0; + // COMMAND + _rdmsr(USB_MSR_REG(USB_OTG), &hi, &lo); + if(hi & 0x02) + conf_data |= PCI_COMMAND_MEM_ENABLE; + // STATUS + conf_data |= PCI_STATUS_66MHZ_SUPPORT; + conf_data |= PCI_STATUS_BACKTOBACK_SUPPORT; + _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo); + if(lo & SB_PARE_ERR_FLAG) + conf_data |= PCI_STATUS_PARITY_ERROR; + conf_data |= PCI_STATUS_DEVSEL_MEDIUM; + break; + case PCI_CLASS_REG : + _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo); + conf_data = lo & 0x000000ff; + conf_data |= (CS5536_OTG_CLASS_CODE << 8); + break; + case PCI_BHLC_REG : + conf_data = (PCI_NONE_BIST << 24) | (PCI_NORMAL_HEADER_TYPE << 16) | + (0x00 << 8) | PCI_NORMAL_CACHE_LINE_SIZE; + break; + case PCI_BAR0_REG : + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + if(lo & SOFT_BAR_OTG_FLAG){ + conf_data = CS5536_OTG_RANGE | PCI_MAPREG_TYPE_MEM; + _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo); + lo &= ~SOFT_BAR_OTG_FLAG; + _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo); + }else{ + _rdmsr(USB_MSR_REG(USB_OTG), &hi, &lo); + conf_data = lo & 0xffffff00; + conf_data &= ~0x0000000f; + } + break; + case PCI_BAR1_REG : + conf_data = 0x000000; + break; + case PCI_BAR2_REG : + conf_data = 0x000000; + break; + case PCI_BAR3_REG : + conf_data = 0x000000; + break; + case PCI_BAR4_REG : + conf_data = 0x000000; + break; + case PCI_BAR5_REG : + conf_data = 0x000000; + break; + case PCI_CARDBUS_CIS_REG : + conf_data = PCI_CARDBUS_CIS_POINTER; + break; + case PCI_SUBSYS_ID_REG : + conf_data = (CS5536_OTG_SUB_ID << 16) | CS5536_SUB_VENDOR_ID; + break; + case PCI_MAPREG_ROM : + conf_data = PCI_EXPANSION_ROM_BAR; + break; + case PCI_CAPLISTPTR_REG : + conf_data = PCI_CAPLIST_USB_POINTER; + break; + case PCI_INTERRUPT_REG : + conf_data = (PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | + (0x01 << 8) | 0x00; + break; + default : + conf_data = 0; + break; + } + + return conf_data; +} + +#else /* TEST_CS5536_USE_OTG */ + +static void pci_otg_write_reg(int reg, u32 value) +{ + return; +} + +static u32 pci_otg_read_reg(int reg) +{ + return 0xffffffff; +} + +#endif /* TEST_CS5536_USE_OTG */ + +/*******************************************************************************/ + +/* + * writen : write to PCI config space and transfer it to MSR write. + */ +int cs5536_pci_conf_writen(int function, int reg, int width, pcireg_t value) +{ + unsigned short temp_reg; + + /* some basic checking. */ + if( (function < CS5536_FUNC_START) || (function > CS5536_FUNC_END) ){ + printf("cs5536 pci conf read : function range error.\n"); + return (-1); + } + if( (reg < 0) || (reg > 0x100) ){ + printf("cs5536 pci conf read : register range error.\n"); + return (-1); + } + if( width != 4 ){ + printf("cs5536 pci conf read : width error.\n"); + return (-1); + } + + temp_reg = reg; + reg = temp_reg & 0xfc; + switch(function){ + case CS5536_ISA_FUNC : + pci_isa_write_reg(reg, value); + break; + + case CS5536_FLASH_FUNC : + pci_flash_write_reg(reg, value); + break; + + case CS5536_IDE_FUNC : + pci_ide_write_reg(reg, value); + break; + + case CS5536_ACC_FUNC : + pci_acc_write_reg(reg, value); + break; + + case CS5536_OHCI_FUNC : + pci_ohci_write_reg(reg, value); + break; + + case CS5536_EHCI_FUNC : + pci_ehci_write_reg(reg, value); + break; + + case CS5536_UDC_FUNC : + pci_udc_write_reg(reg, value); + break; + + case CS5536_OTG_FUNC : + pci_otg_write_reg(reg, value); + break; + + default : + printf("cs5536 not supported function.\n"); + break; + + } + + return 0; +} + + +/* + * readn : read PCI config space and transfer it to MSR access. + */ +pcireg_t cs5536_pci_conf_readn(int function, int reg, int width) +{ + pcireg_t data; + int temp_reg; + + /* some basic checking. */ + if( (function < CS5536_FUNC_START) || (function > CS5536_FUNC_END) ){ + printf("cs5536 pci conf read : function range error.\n"); + return (-1); + } + if( (reg < 0) || (reg > 0x100) ){ + printf("cs5536 pci conf read : register range error.\n"); + return (-1); + } + if( (width != 1) && (width != 2) && (width != 4) ){ + printf("cs5536 pci conf read : width error.\n"); + return (-1); + } + + temp_reg = reg; + reg = temp_reg & 0xfc; + switch(function){ + case CS5536_ISA_FUNC : + data = pci_isa_read_reg(reg); + break; + + case CS5536_FLASH_FUNC : + data = pci_flash_read_reg(reg); + break; + + case CS5536_IDE_FUNC : + data = pci_ide_read_reg(reg); + break; + + case CS5536_ACC_FUNC : + data = pci_acc_read_reg(reg); + break; + + case CS5536_OHCI_FUNC : + data = pci_ohci_read_reg(reg); + break; + + case CS5536_EHCI_FUNC : + data = pci_ehci_read_reg(reg); + break; + + case CS5536_UDC_FUNC : + data = pci_udc_read_reg(reg); + break; + + case CS5536_OTG_FUNC : + data = pci_otg_read_reg(reg); + break; + + default : + printf("cs5536 not supported function.\n"); + break; + + } + + data = data >> ( (temp_reg & 0x03) << 3 ); + return data; +} + +void cs5536_pci_conf_write4(int function, int reg, pcireg_t value){ + cs5536_pci_conf_writen(function, reg, 4, value); + return; +} + +pcireg_t cs5536_pci_conf_read4(int function, int reg){ + return cs5536_pci_conf_readn(function, reg, 4); +} + +/***************************************************************************/ + +#if 1 +static int cmd_rdecreg(int ac, char *av[]) +{ + u32 start, size, reg; + u8 value; + + size = 0; + if(!get_rsa(&start, av[1])) { + printf("ecreg : access error!\n"); + return -1; + } + + if(!get_rsa(&size, av[2])){ + printf("ecreg : size error\n"); + return -1; + } + + if((start > 0x10000) || (size > 0x10000)){ + printf("ecreg : start not available.\n"); + } + + printf("ecreg : \n"); + reg = start; + while(size > 0){ + *( (volatile unsigned char *)(0xbfd00381) ) = (reg & 0xff00) >> 8; + *( (volatile unsigned char *)(0xbfd00382) ) = (reg & 0x00ff); + value = *((volatile unsigned char *)(0xbfd00383)); + printf("reg address : 0x%x, value : 0x%x\n", reg, value); + reg++; + size--; + } + + return 0; +} + +static int cmd_rdmsr(int ac, char *av[]) +{ + u32 msr, hi, lo; + + if(!get_rsa(&msr, av[1])) { + printf("msr : access error!\n"); + return -1; + } + + _rdmsr(msr, &hi, &lo); + + printf("msr : address %x hi %x lo %x\n", msr, hi, lo); + + return 0; +} + +static int cmd_wrmsr(int ac, char *av[]) +{ + u32 msr, hi, lo; + + if(!get_rsa(&msr, av[1])){ + printf("msr : access error!\n"); + return -1; + }else if(!get_rsa(&hi, av[2])){ + printf("hi : access error!\n"); + return -1; + }else if(!get_rsa(&lo, av[3])){ + printf("lo : access error!\n"); + return -1; + } + + _wrmsr(msr, hi, lo); + + return 0; +} + +static inline wrec(u16 reg, u8 val) +{ + *( (volatile unsigned char *)(0xbfd00381) ) = (reg & 0xff00) >> 8; + *( (volatile unsigned char *)(0xbfd00382) ) = (reg & 0x00ff); + *( (volatile unsigned char *)(0xbfd00383) ) = val; +} + +static inline rdec(u16 reg) +{ + *( (volatile unsigned char *)(0xbfd00381) ) = (reg & 0xff00) >> 8; + *( (volatile unsigned char *)(0xbfd00382) ) = (reg & 0x00ff); + return (*( (volatile unsigned char *)(0xbfd00383) )); +} + +/* SMBUS relative register block according to the EC datasheet. */ +#define REG_SMBTCRC 0xff92 +#define REG_SMBPIN 0xff93 +#define REG_SMBCFG 0xff94 +#define REG_SMBEN 0xff95 +#define REG_SMBPF 0xff96 +#define REG_SMBRCRC 0xff97 +#define REG_SMBPRTCL 0xff98 +#define REG_SMBSTS 0xff99 +#define REG_SMBADR 0xff9a +#define REG_SMBCMD 0xff9b +#define REG_SMBDAT_START 0xff9c +#define REG_SMBDAT_END 0xffa3 +#define SMBDAT_SIZE 8 +#define REG_SMBRSA 0xffa4 +#define REG_SMBCNT 0xffbc +#define REG_SMBAADR 0xffbd +#define REG_SMBADAT0 0xffbe +#define REG_SMBADAT1 0xffbf + + +static int cmd_rdbat(int ac, char *av[]) +{ + u8 index; + u8 val; + + if(ac < 2){ + printf("usage : rdbat %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("rdbat : access error!\n"); + return -1; + } + + printf("battery : index 0x%x \t", index); + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x01); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 0); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x6c|0x01); + wrec(REG_SMBCMD, index); + wrec(REG_SMBPRTCL, 0x07); + while(!(rdec(REG_SMBSTS) & (1 << 7))); + + val = rdec(REG_SMBDAT_START); + printf("value 0x%x\n", val); + + return 0; +} + +static int cmd_rdfan(int ac, char *av[]) +{ + u8 index; + u8 val; + + if(ac < 2){ + printf("usage : rdfan %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("rdfan : access error!\n"); + return -1; + } + + printf("fan : index 0x%x \t", index); + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x02); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 1); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x90|0x01); + wrec(REG_SMBCMD, index); + wrec(REG_SMBPRTCL, 0x09); + while(!(rdec(REG_SMBSTS) & (1 << 7))); + + val = rdec(REG_SMBDAT_START); + printf("value 0x%x\t", val); + val = rdec(REG_SMBDAT_START + 1); + printf("value2 0x%x\n", val); + + return 0; +} + +#define DISPLAY_MODE_NORMAL 0 // Screen(on); Hsync(on); Vsync(on) +#define DISPLAY_MODE_STANDBY 1 // Screen(off); Hsync(off); Vsync(on) +#define DISPLAY_MODE_SUSPEND 2 // Screen(off); Hsync(on); Vsync(off) +#define DISPLAY_MODE_OFF 3 // Screen(off); Hsync(off); Vsync(off) +#define SEQ_INDEX 0x3c4 +#define SEQ_DATA 0x3c5 +static inline unsigned char read_seq(int reg) +{ + *((volatile unsigned char *)(0xbfd00000 | SEQ_INDEX)) = reg; + return (*(volatile unsigned char *)(0xbfd00000 | SEQ_DATA)); +} + +static inline void write_seq(int reg, unsigned char data) +{ + *((volatile unsigned char *)(0xbfd00000 | SEQ_INDEX)) = reg; + *((volatile unsigned char *)(0xbfd00000 | SEQ_DATA)) = data; + + return; +} + +static u8 cur_mode; +static u8 SavedSR01, SavedSR20, SavedSR21, SavedSR22, SavedSR23, SavedSR24, SavedSR31, SavedSR34; +static int cmd_powerdebug(int ac, char *av[]) +{ + u8 index; + u8 val; + u8 SR01, SR20, SR21, SR22, SR23, SR24, SR31, SR34; + + if(ac < 2){ + printf("usage : powerdebug %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("powerdebug : access error!\n"); + return -1; + } + + if(cur_mode == DISPLAY_MODE_NORMAL){ + SavedSR01 = read_seq(0x01); + SavedSR20 = read_seq(0x20); + SavedSR21 = read_seq(0x21); + SavedSR22 = read_seq(0x22); + SavedSR23 = read_seq(0x23); + SavedSR24 = read_seq(0x24); + SavedSR31 = read_seq(0x31); + SavedSR34 = read_seq(0x34); + printf("normal power register : \n"); + printf("SR01 0x%x SR20 0x%x SR21 0x%x SR22 0x%x SR23 0x%x\n", + SavedSR01, SavedSR20, SavedSR21, SavedSR22, SavedSR23, SavedSR24); + printf("SR24 0x%x SR31 0x%x SR34 0x%x\n", SavedSR24, SavedSR31, SavedSR34); + } + SR01 = read_seq(0x01); + SR20 = read_seq(0x20); + SR21 = read_seq(0x21); + SR22 = read_seq(0x22); + SR23 = read_seq(0x23); + SR24 = read_seq(0x24); + SR31 = read_seq(0x31); + SR34 = read_seq(0x34); + + printf("powerdebug : mode %d\n", index); + switch(index){ + case DISPLAY_MODE_NORMAL : + SR01 &= ~0x20; + SR20 = SavedSR20; + SR21 = SavedSR21; + SR22 &= ~0x30; + SR23 &= ~0xC0; + SR24 |= 0x01; + SR31 = SavedSR31; + SR34 = SavedSR34; + break; + case DISPLAY_MODE_STANDBY : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x10; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + case DISPLAY_MODE_SUSPEND : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x20; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + case DISPLAY_MODE_OFF : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x30; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + default : + printf("powerdebug : not supported mode setting for display.\n"); + break; + } + + if( (*((volatile unsigned char *)(0xbfd00000 | 0x3cc))) & 0x01 ){ + while( (*((volatile unsigned char *)(0xbfd00000 | 0x3da))) & 0x08 ); + while( !((*((volatile unsigned char *)(0xbfd00000 | 0x3da))) & 0x08) ); + }else{ + while( (*((volatile unsigned char *)(0xbfd00000 | 0x3ba))) & 0x08 ); + while( !((*((volatile unsigned char *)(0xbfd00000 | 0x3ba))) & 0x08) ); + } + + write_seq(0x01, SR01); + write_seq(0x20, SR20); + write_seq(0x21, SR21); + write_seq(0x22, SR22); + write_seq(0x23, SR23); + write_seq(0x24, SR24); + write_seq(0x31, SR31); + write_seq(0x34, SR34); + + cur_mode = index; + + return 0; +} + +#define XBI_BANK 0xFE00 +#define XBISEG0 0xA0 +#define XBISEG1 0xA1 +#define XBIRSV2 0xA2 +#define XBIRSV3 0xA3 +#define XBIRSV4 0xA4 +#define XBICFG 0xA5 +#define XBICS 0xA6 +#define XBIWE 0xA7 +#define XBISPIA0 0xA8 +#define XBISPIA1 0xA9 +#define XBISPIA2 0xAA +#define XBISPIDAT 0xAB +#define XBISPICMD 0xAC +#define XBISPICFG 0xAD +#define XBISPIDATR 0xAE +#define XBISPICFG2 0xAF +#define XBI_READ 0x03 +#define XBI_WRITE 0x02 +#define XBI_WRITE_ENABLE 0x06 +static int cmd_xbi(int ac, char *av[]) +{ + u8 val; + u8 cmd; + u32 addr; + u8 data; + int timeout = 0x100000; + + if(ac < 3){ + //printf("usage : xbi cmd start_address [val]\n"); + printf("usage : xbi start_address [val]\n"); + return -1; + } + +// if(!get_rsa(&cmd, av[1])) { +// printf("xbi : access error!\n"); +// return -1; +// } + if(!get_rsa(&addr, av[1])) { + printf("xbi : access error!\n"); + return -1; + } +// if(ac == 4){ + if(!get_rsa(&data, av[2])) { + printf("xbi : access error!\n"); + return -1; + } +// } + + /* disable 8051 fetching code. */ + val = rdec(XBI_BANK | XBICFG); + wrec(XBI_BANK | XBICFG, val & ~(1 << 6)); + /* enable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG); + wrec(XBI_BANK | XBISPICFG, val | (1 << 3)); + /* enable write spi flash */ + wrec(XBI_BANK | XBISPICMD, XBI_WRITE_ENABLE); + + /* write the address */ + wrec(XBI_BANK | XBISPIA2, (addr & 0xff0000) >> 16); + wrec(XBI_BANK | XBISPIA1, (addr & 0x00ff00) >> 8); + wrec(XBI_BANK | XBISPIA0, (addr & 0x0000ff) >> 0); +// if(cmd == XBI_WRITE) + wrec(XBI_BANK | XBISPIDAT, data); + /* start action */ + wrec(XBI_BANK | XBISPICMD, 2); + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : read timeout.\n"); + return -1; + } + +// if(cmd == XBI_READ){ +// /* get data */ +// data = rdec(XBI_BANK | XBISPIDAT); +// printf("ec : addr 0x%x\t, data 0x%x\n", addr, data); +// } + + return 0; +} + +static const Cmd Cmds[] = +{ + {"cs5536 debug"}, + {"rdmsr", "reg", NULL, "msr read test", cmd_rdmsr, 2, 99, CMD_REPEAT}, + {"wrmsr", "reg", NULL, "msr write test", cmd_wrmsr, 2, 99, CMD_REPEAT}, + {"rdecreg", "reg", NULL, "KB3310 EC reg read test", cmd_rdecreg, 2, 99, CMD_REPEAT}, + {"rdbat", "reg", NULL, "KB3310 smbus battery reg read test", cmd_rdbat, 2, 99, CMD_REPEAT}, + {"rdfan", "reg", NULL, "KB3310 smbus fan reg read test", cmd_rdfan, 2, 99, CMD_REPEAT}, + {"powerdebug", "reg", NULL, "for debug the power state of sm712 graphic", cmd_powerdebug, 2, 99, CMD_REPEAT}, + {"xbi", "reg", NULL, "for debug write or read data from xbi interface of ec", cmd_xbi, 2, 99, CMD_REPEAT}, + {0}, +}; + + +static void init_cmd __P((void)) __attribute__ ((constructor)); + +static void +init_cmd() +{ + cmdlist_expand(Cmds, 1); +} +#endif + +/**************************************************************************/ + + + diff --git a/Targets/Bonito2F7inch/pci/pci_machdep.c b/Targets/Bonito2F7inch/pci/pci_machdep.c new file mode 100644 index 00000000..c43f228e --- /dev/null +++ b/Targets/Bonito2F7inch/pci/pci_machdep.c @@ -0,0 +1,464 @@ +/* $Id: pci_machdep.c,v 1.3 2006/07/20 09:37:06 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB, Sweden. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +#include +#include + +#include + +#include +#include +#include + +#include + +#include +#include +#include + +#include "cs5536.h" + +/*****************************************************************/ + +extern pcireg_t cs5536_pci_conf_readn(int function, int reg, int width); +extern int cs5536_pci_conf_writen(int function, int reg, int width, pcireg_t value); +extern void *pmalloc __P((size_t )); +extern int _pciverbose; +extern char hwethadr[6]; + +struct pci_device *_pci_bus[16]; +int _max_pci_bus = 0; + + +/* PCI mem regions in PCI space */ + +/* soft versions of above */ +static pcireg_t pci_local_mem_pci_base; + + +/****************************/ +/*initial PCI */ +/****************************/ +int +_pci_hwinit(initialise, iot, memt) + int initialise; + bus_space_tag_t iot; + bus_space_tag_t memt; +{ + /*pcireg_t stat;*/ + struct pci_device *pd; + struct pci_bus *pb; + + + if (!initialise) { + return(0); + } + + pci_local_mem_pci_base = PCI_LOCAL_MEM_PCI_BASE; + /* + * Allocate and initialize PCI bus heads. + */ + + /* + * PCI Bus 0 + */ + pd = pmalloc(sizeof(struct pci_device)); + pb = pmalloc(sizeof(struct pci_bus)); + if(pd == NULL || pb == NULL) { + printf("pci: can't alloc memory. pci not initialized\n"); + return(-1); + } + + pd->pa.pa_flags = PCI_FLAGS_IO_ENABLED | PCI_FLAGS_MEM_ENABLED; + pd->pa.pa_iot = pmalloc(sizeof(bus_space_tag_t)); + pd->pa.pa_iot->bus_reverse = 1; + pd->pa.pa_iot->bus_base = BONITO_PCIIO_BASE_VA; + //printf("pd->pa.pa_iot=%p,bus_base=0x%x\n",pd->pa.pa_iot,pd->pa.pa_iot->bus_base); + pd->pa.pa_memt = pmalloc(sizeof(bus_space_tag_t)); + pd->pa.pa_memt->bus_reverse = 1; + //pd->pa.pa_memt->bus_base = 0xa0000000; /* pci memory start from 0x10000000 */ + pd->pa.pa_memt->bus_base = 0xb0000000; /* pci memory start from 0x00000000 */ + pd->pa.pa_dmat = &bus_dmamap_tag; + pd->bridge.secbus = pb; + _pci_head = pd; +#if 0 + pb->minpcimemaddr = 0x14000000;//ºÜÆæ¹Ö,²»ÄܺÍlinux·ÖÅäÆðʼµØÖ·Ò»ÖÂ,·ñÔòxwindowÖÐÏÔʾ³öÎÊÌâ + pb->nextpcimemaddr = 0x1c000000; + pd->pa.pa_memt->bus_base = 0xa0000000; + BONITO_PCIMAP = + BONITO_PCIMAP_WIN(0, PCI_MEM_SPACE_PCI_BASE+0x00000000) | + BONITO_PCIMAP_WIN(1, PCI_MEM_SPACE_PCI_BASE+0x14000000) | + BONITO_PCIMAP_WIN(2, PCI_MEM_SPACE_PCI_BASE+0x18000000) | + BONITO_PCIMAP_PCIMAP_2; + +#else +#ifndef NEW_PCI_WINDOW + /* reserve first window for vga mem */ + pb->minpcimemaddr = PCI_MEM_SPACE_PCI_BASE+0x04000000; + pb->nextpcimemaddr = PCI_MEM_SPACE_PCI_BASE+BONITO_PCILO_SIZE; +#else + pb->minpcimemaddr = PCI_MEM_SPACE_PCI_BASE; + pb->nextpcimemaddr = PCI_MEM_SPACE_PCI_BASE+ 0x0a000000; +#endif +#ifndef NEW_PCI_WINDOW + /*set Bonito register; first windows for 0-0x4000000 pci mem */ + BONITO_PCIMAP = + BONITO_PCIMAP_WIN(0, /*PCI_MEM_SPACE_PCI_BASE+*/0x00000000) | + BONITO_PCIMAP_WIN(1, PCI_MEM_SPACE_PCI_BASE+0x04000000) | + BONITO_PCIMAP_WIN(2, PCI_MEM_SPACE_PCI_BASE+0x08000000) | + BONITO_PCIMAP_PCIMAP_2; +#else + BONITO_PCIMAP = (PCI_MEM_SPACE_PCI_BASE >>27) | (((PCI_MEM_SPACE_PCI_BASE + 0x08000000) >>25)<<5); +#endif + +#endif + + pb->minpciioaddr = PCI_IO_SPACE_BASE+0x000b000; + pb->nextpciioaddr = PCI_IO_SPACE_BASE+ BONITO_PCIIO_SIZE; + pb->pci_mem_base = BONITO_PCILO_BASE_VA; + pb->pci_io_base = BONITO_PCIIO_BASE_VA; + pb->max_lat = 255; + pb->fast_b2b = 1; + pb->prefetch = 1; + pb->bandwidth = 0x4000000; + pb->ndev = 1; + _pci_bushead = pb; + _pci_bus[_max_pci_bus++] = pd; + + + bus_dmamap_tag._dmamap_offs = 0; + +#if 1 // for 2f + BONITO_PCIBASE0 = 0x80000000; + + BONITO_PCIBASE1 = 0x0; + + BONITO_PCIBASE2 = 0x70000000; + BONITO_PCI_REG(0x40) = 0x80000000; + BONITO_PCI_REG(0x44) = 0xf0000000; + + /* pci base0/1 can access 256M sdram */ + BONITO_PCIMEMBASECFG = 0; +#else // for 2e + + BONITO_PCIBASE0 = PCI_LOCAL_MEM_PCI_BASE; + + BONITO_PCIBASE1 = PCI_LOCAL_MEM_ISA_BASE; + + BONITO_PCIBASE2 = PCI_LOCAL_REG_PCI_BASE; + + /* pci base0/1 can access 256M sdram */ + BONITO_PCIMEMBASECFG = 0; +#endif + return(1); +} + + +/* + * Called to reinitialise the bridge after we've scanned each PCI device + * and know what is possible. We also set up the interrupt controller + * routing and level control registers. + */ +void +_pci_hwreinit (void) +{ +} + +void +_pci_flush (void) +{ +} + +/* + * Map the CPU virtual address of an area of local memory to a PCI + * address that can be used by a PCI bus master to access it. + */ +vm_offset_t +_pci_dmamap(va, len) + vm_offset_t va; + unsigned int len; +{ +#if 0 + return(VA_TO_PA(va) + bus_dmamap_tag._dmamap_offs); +#endif + return(pci_local_mem_pci_base + VA_TO_PA (va)); +} + + +#if 0 +/* + * Map the PCI address of an area of local memory to a CPU physical + * address. + */ +vm_offset_t +_pci_cpumap(pcia, len) + vm_offset_t pcia; + unsigned int len; +{ + return PA_TO_VA(pcia - pci_local_mem_pci_base); +} +#endif + + +/* + * Make pci tag from bus, device and function data. + */ +pcitag_t +_pci_make_tag(bus, device, function) + int bus; + int device; + int function; +{ + pcitag_t tag; + + tag = (bus << 16) | (device << 11) | (function << 8); + return(tag); +} + +/* + * Break up a pci tag to bus, device function components. + */ +void +_pci_break_tag(tag, busp, devicep, functionp) + pcitag_t tag; + int *busp; + int *devicep; + int *functionp; +{ + if (busp) { + *busp = (tag >> 16) & 255; + } + if (devicep) { + *devicep = (tag >> 11) & 31; + } + if (functionp) { + *functionp = (tag >> 8) & 7; + } +} + +int +_pci_canscan (pcitag_t tag) +{ + int bus, device, function; + + _pci_break_tag (tag, &bus, &device, &function); + if((bus == 0 || bus == 1) && device == 0) { + return(0); /* Ignore the Discovery itself */ + } + return (1); +} + + +pcireg_t +_pci_conf_read(pcitag_t tag,int reg) +{ + return _pci_conf_readn(tag,reg,4); +} + +pcireg_t _pci_conf_readn(pcitag_t tag, int reg, int width) +{ + u_int32_t addr, type; + pcireg_t data; + int bus, device, function; + + if ((reg & (width-1)) || reg < 0 || reg >= 0x100) { + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_read: bad reg 0x%x\n", reg); + return ~0; + } + + _pci_break_tag (tag, &bus, &device, &function); + if (bus == 0) { + /* Type 0 configuration on onboard PCI bus */ + if (device > 20 || function > 7) + return ~0; /* device out of range */ + addr = (1 << (device+11)) | (function << 8) | reg; + type = 0x00000; + } + else { + /* Type 1 configuration on offboard PCI bus */ + if (bus > 255 || device > 31 || function > 7) + return ~0; /* device out of range */ + addr = (bus << 16) | (device << 11) | (function << 8) | reg; + type = 0x10000; + } + +#if NCS5536 > 0 + if( (bus == 0) && (device == PCI_IDSEL_CS5536) && (reg < 0xf0) ){ + return cs5536_pci_conf_readn(function, reg, width); + } +#else + if( (bus == 0) && (device == PCI_IDSEL_CS5536) ){ + if(width == 1) + return 0xff; + else if(width == 2) + return 0xffff; + else + return 0xffffffff; + } +#endif + + /* clear aborts */ + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + + BONITO_PCIMAP_CFG = (addr >> 16) | type; + + data = *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)); + + /* move data to correct position */ + data = data >> ((addr & 3) << 3); + + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; +#if 0 + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_read: reg=%x master abort\n", reg); +#endif + return ~0; + } + + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_read: target abort\n"); + return ~0; + } + + return data; +} +void +_pci_conf_write(pcitag_t tag, int reg, pcireg_t data) +{ + return _pci_conf_writen(tag,reg,data,4); +} + +void _pci_conf_writen(pcitag_t tag, int reg, pcireg_t data,int width) +{ + u_int32_t addr, type; + int bus, device, function; + + if ((reg &(width-1)) || reg < 0 || reg >= 0x100) { + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_write: bad reg %x\n", reg); + return; + } + + _pci_break_tag (tag, &bus, &device, &function); + + if (bus == 0) { + /* Type 0 configuration on onboard PCI bus */ + if (device > 20 || function > 7) + return; /* device out of range */ + addr = (1 << (device+11)) | (function << 8) | reg; + type = 0x00000; + } + else { + /* Type 1 configuration on offboard PCI bus */ + if (bus > 255 || device > 31 || function > 7) + return; /* device out of range */ + addr = (bus << 16) | (device << 11) | (function << 8) | reg; + type = 0x10000; + } + +#if NCS5536 > 0 + if( (bus == 0) && (device == PCI_IDSEL_CS5536) & (reg < 0xf0)){ + if(cs5536_pci_conf_writen(function, reg, width, data)){ + printf("cs5536 write error.\n"); + } + return; + } +#else + if( (bus == 0) && (device == PCI_IDSEL_CS5536) ){ + return; + } +#endif + + /* clear aborts */ + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT | PCI_STATUS_MASTER_TARGET_ABORT; + + BONITO_PCIMAP_CFG = (addr >> 16); + +#if 0 + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = data; +#else + { + pcireg_t ori = *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)); + pcireg_t mask = 0x0; + + if (width == 2) { + if (addr & 3) mask = 0xffff; + else mask = 0xffff0000; + }else if (width == 1) { + if ((addr & 3) == 1) { + mask = 0xffff00ff; + }else if ((addr & 3) == 2) { + mask = 0xff00ffff; + }else if ((addr & 3) == 3) { + mask = 0x00ffffff; + }else{ + mask = 0xffffff00; + } + } + + data = data << ((addr & 3) << 3); + data = (ori & mask) | data; + *(volatile pcireg_t *)PHYS_TO_UNCACHED(BONITO_PCICFG_BASE | (addr & 0xfffc)) = data; + } +#endif + + if (BONITO_PCICMD & PCI_STATUS_MASTER_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_ABORT; + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_write: master abort\n"); + } + + if (BONITO_PCICMD & PCI_STATUS_MASTER_TARGET_ABORT) { + BONITO_PCICMD |= PCI_STATUS_MASTER_TARGET_ABORT; + if (_pciverbose >= 1) + _pci_tagprintf (tag, "_pci_conf_write: target abort\n"); + } +} + + + +void +pci_sync_cache(p, adr, size, rw) + void *p; + vm_offset_t adr; + size_t size; + int rw; +{ + CPU_IOFlushDCache(adr, size, rw); +} + diff --git a/Targets/Bonito2F7inch/pci/pci_machdep.h b/Targets/Bonito2F7inch/pci/pci_machdep.h new file mode 100644 index 00000000..1c5a837f --- /dev/null +++ b/Targets/Bonito2F7inch/pci/pci_machdep.h @@ -0,0 +1,124 @@ +/* $Id: pci_machdep.h,v 1.1.1.1 2006/06/29 06:43:25 cpu Exp $ */ + +/* + * Copyright (c) 2001 Opsycon AB (www.opsycon.se) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Opsycon AB. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#ifndef __PCI_MACHDEP_H__ +#define __PCI_MACHDEP_H__ + +/* + * Types provided to machine-independent PCI code + */ +typedef struct arch_pci_chipset *pci_chipset_tag_t; +typedef u_long pcitag_t; +typedef u_long pci_intr_handle_t; + + +#include +#include +#include +#include + +void _pci_flush __P((void)); +int _pci_hwinit __P((int, bus_space_tag_t, bus_space_tag_t)); +void _pci_hwreinit __P((void)); +pcitag_t _pci_make_tag __P((int, int, int)); +void _pci_break_tag __P((pcitag_t, int *, int *, int *)); +pcireg_t _pci_conf_readn __P((pcitag_t, int,int)); +void _pci_conf_writen __P((pcitag_t, int, pcireg_t,int)); +pcireg_t _pci_conf_read __P((pcitag_t, int)); +void _pci_conf_write __P((pcitag_t, int, pcireg_t)); +int _pci_map_port __P((pcitag_t, int, unsigned int *)); +int _pci_map_io __P((pcitag_t, int, vm_offset_t *, vm_offset_t *)); +int _pci_map_mem __P((pcitag_t, int, vm_offset_t *, vm_offset_t *)); +void *_pci_map_int __P((pcitag_t, int, int (*)(void *), void *)); +void _pci_devinfo __P((pcireg_t, pcireg_t, int *, char *)); +void _pci_businit __P((int)); +void _pci_devinit __P((int)); +vm_offset_t _pci_cpumap __P((vm_offset_t, unsigned int)); +vm_offset_t _pci_dmamap __P((vm_offset_t, unsigned int)); + +void _pci_bdfprintf (int bus, int device, int function, const char *fmt, ...); +void _pci_tagprintf (pcitag_t tag, const char *fmt, ...); +int _pci_canscan __P((pcitag_t tag)); + +/* sigh... compatibility */ +#define pci_hwinit _pci_hwinit +#define pci_hwreinit _pci_hwreinit +#define pci_make_tag _pci_make_tag +#define pci_break_tag _pci_break_tag +#define pci_conf_read(a, b, c) _pci_conf_read(b, c) +#define pci_conf_write(a, b, c, d) _pci_conf_write(b, c, d) +#define pci_map_port _pci_map_port +#define pci_map_io _pci_map_io +#define pci_map_mem _pci_map_mem +#define pci_map_int _pci_map_int +#define pci_devinfo _pci_devinfo +#define pci_configure _pci_configure +#define pci_allocate_mem _pci_allocate_mem +#define pci_allocate_io _pci_allocate_io +#define vtophys(p) _pci_dmamap((vm_offset_t)p, 1) +#define pci_decompose_tag(a, b, c, d, e) _pci_break_tag(b, c, d, e) + +#define pci_intr_map(a, b, c, d, e) (*e = -1, 0) +#define pci_intr_string(a,b) ("generic poll") +#define pci_intr_establish(a, b, c, d, e, f) tgt_poll_register((c), (d), (e)) +#define pci_attach_hook(parent, self, pba) +#define pci_bus_maxdevs(c, b) 32 + +int pci_ether_hw_addr __P((void *sc, u_int8_t *, u_int8_t, u_int8_t)); +void pci_sync_cache __P((void *, vm_offset_t, size_t, int)); + +#define CACHESYNC(a, l, h) pci_sync_cache((void *)NULL, (vm_offset_t)a, l ,h) + +#define NEED_PCI_SYNC_CACHE_FUNC + +#define SYNC_R 0 /* Sync caches for reading data */ +#define SYNC_W 1 /* Sync caches for writing data */ + +#define PCI_FIRST_DEVICE 1 /* Which device to scan first */ +#define PCI_FIRST_BUS 0 +#define PCI_INT_0 0 +#define PCI_INT_A 11 +#define PCI_INT_B 10 +#define PCI_INT_C 9 +#define PCI_INT_D 8 +#define PCI_CACHE_LINE_SIZE 8 /* expressed in 32 bit words */ + +#define NEWPCIROOT +extern struct pci_device *_pci_bus[]; + +/* + * Any physical to virtual conversion CPU + */ +#define VA_TO_PA(x) UNCACHED_TO_PHYS(x) +#define PA_TO_VA(x) PHYS_TO_CACHED(x) +#endif diff --git a/Targets/Bonito2F7inch/pci/sys_cmd.c b/Targets/Bonito2F7inch/pci/sys_cmd.c new file mode 100644 index 00000000..f0040d2e --- /dev/null +++ b/Targets/Bonito2F7inch/pci/sys_cmd.c @@ -0,0 +1,570 @@ +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include "cs5536_io.h" + +/*********************************MSR debug*********************************/ + +static int cmd_rdmsr(int ac, char *av[]) +{ + u32 msr, hi, lo; + + if(!get_rsa(&msr, av[1])) { + printf("msr : access error!\n"); + return -1; + } + + _rdmsr(msr, &hi, &lo); + + printf("msr : address %x hi %x lo %x\n", msr, hi, lo); + + return 0; +} + +static int cmd_wrmsr(int ac, char *av[]) +{ + u32 msr, hi, lo; + + if(!get_rsa(&msr, av[1])){ + printf("msr : access error!\n"); + return -1; + }else if(!get_rsa(&hi, av[2])){ + printf("hi : access error!\n"); + return -1; + }else if(!get_rsa(&lo, av[3])){ + printf("lo : access error!\n"); + return -1; + } + + _wrmsr(msr, hi, lo); + + return 0; +} + +/*******************************Display debug*******************************/ + +#define DISPLAY_MODE_NORMAL 0 // Screen(on); Hsync(on); Vsync(on) +#define DISPLAY_MODE_STANDBY 1 // Screen(off); Hsync(off); Vsync(on) +#define DISPLAY_MODE_SUSPEND 2 // Screen(off); Hsync(on); Vsync(off) +#define DISPLAY_MODE_OFF 3 // Screen(off); Hsync(off); Vsync(off) +#define SEQ_INDEX 0x3c4 +#define SEQ_DATA 0x3c5 +static inline unsigned char read_seq(int reg) +{ + *((volatile unsigned char *)(0xbfd00000 | SEQ_INDEX)) = reg; + return (*(volatile unsigned char *)(0xbfd00000 | SEQ_DATA)); +} + +static inline void write_seq(int reg, unsigned char data) +{ + *((volatile unsigned char *)(0xbfd00000 | SEQ_INDEX)) = reg; + *((volatile unsigned char *)(0xbfd00000 | SEQ_DATA)) = data; + + return; +} + +static u8 cur_mode; +static u8 SavedSR01, SavedSR20, SavedSR21, SavedSR22, SavedSR23, SavedSR24, SavedSR31, SavedSR34; +static int cmd_powerdebug(int ac, char *av[]) +{ + u8 index; + u8 SR01, SR20, SR21, SR22, SR23, SR24, SR31, SR34; + + if(ac < 2){ + printf("usage : powerdebug %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("powerdebug : access error!\n"); + return -1; + } + + if(cur_mode == DISPLAY_MODE_NORMAL){ + SavedSR01 = read_seq(0x01); + SavedSR20 = read_seq(0x20); + SavedSR21 = read_seq(0x21); + SavedSR22 = read_seq(0x22); + SavedSR23 = read_seq(0x23); + SavedSR24 = read_seq(0x24); + SavedSR31 = read_seq(0x31); + SavedSR34 = read_seq(0x34); + printf("normal power register : \n"); + printf("SR01 0x%x SR20 0x%x SR21 0x%x SR22 0x%x SR23 0x%x\n", + SavedSR01, SavedSR20, SavedSR21, SavedSR22, SavedSR23, SavedSR24); + printf("SR24 0x%x SR31 0x%x SR34 0x%x\n", SavedSR24, SavedSR31, SavedSR34); + } + SR01 = read_seq(0x01); + SR20 = read_seq(0x20); + SR21 = read_seq(0x21); + SR22 = read_seq(0x22); + SR23 = read_seq(0x23); + SR24 = read_seq(0x24); + SR31 = read_seq(0x31); + SR34 = read_seq(0x34); + + printf("powerdebug : mode %d\n", index); + switch(index){ + case DISPLAY_MODE_NORMAL : + SR01 &= ~0x20; + SR20 = SavedSR20; + SR21 = SavedSR21; + SR22 &= ~0x30; + SR23 &= ~0xC0; + SR24 |= 0x01; + SR31 = SavedSR31; + SR34 = SavedSR34; + break; + case DISPLAY_MODE_STANDBY : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x10; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + case DISPLAY_MODE_SUSPEND : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x20; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + case DISPLAY_MODE_OFF : + SR01 |= 0x20; + SR20 = (SR20 & ~0xB0) | 0x10; + SR21 |= 0x88; + SR22 = (SR22 & ~0x30) | 0x30; + SR23 = (SR23 & ~0x07) | 0xD8; + SR24 &= ~0x01; + SR31 = (SR31 & ~0x07) | 0x00; + SR34 |= 0x80; + break; + default : + printf("powerdebug : not supported mode setting for display.\n"); + break; + } + + if( (*((volatile unsigned char *)(0xbfd00000 | 0x3cc))) & 0x01 ){ + while( (*((volatile unsigned char *)(0xbfd00000 | 0x3da))) & 0x08 ); + while( !((*((volatile unsigned char *)(0xbfd00000 | 0x3da))) & 0x08) ); + }else{ + while( (*((volatile unsigned char *)(0xbfd00000 | 0x3ba))) & 0x08 ); + while( !((*((volatile unsigned char *)(0xbfd00000 | 0x3ba))) & 0x08) ); + } + + write_seq(0x01, SR01); + write_seq(0x20, SR20); + write_seq(0x21, SR21); + write_seq(0x22, SR22); + write_seq(0x23, SR23); + write_seq(0x24, SR24); + write_seq(0x31, SR31); + write_seq(0x34, SR34); + + cur_mode = index; + + return 0; +} + +/***********************************EC debug*******************************/ + +/* + * rdecreg : read a ec register area. + */ +static int cmd_rdecreg(int ac, char *av[]) +{ + u32 start, size, reg; + + size = 0; + + if(ac < 3){ + printf("usage : rdecreg start_addr size\n"); + return -1; + } + + if(!get_rsa(&start, av[1])) { + printf("ecreg : access error!\n"); + return -1; + } + + if(!get_rsa(&size, av[2])){ + printf("ecreg : size error\n"); + return -1; + } + + if((start > 0x10000) || (size > 0x10000)){ + printf("ecreg : start not available.\n"); + } + + printf("ecreg : reg=0x%x size=0x%x\n",start, size); + reg = start; + while(size > 0){ + printf("reg address : 0x%x, value : 0x%x, value : %c\n", reg, rdec(reg), rdec(reg)); + reg++; + size--; + } + + return 0; +} + +/* + * wrecreg : write a ec register area. + */ +static int cmd_wrecreg(int ac, char *av[]) +{ + u32 addr; + u32 value; + u8 val8; + + if(ac < 3){ + printf("usage : wrecreg addr val\n"); + return -1; + } + + if(!get_rsa(&addr, av[1])) { + printf("ecreg : access error!\n"); + return -1; + } + + if(!get_rsa(&value, av[2])){ + printf("ecreg : size error\n"); + return -1; + } + + val8 = (u8)value; + + if((addr > 0x10000)){ + printf("ecreg : addr not available.\n"); + } + + + printf("ecreg : addr=0x%x value=0x%x\n",addr , val8); + wrec(addr,val8); + + return 0; +} + +/* + * rdbat : read a register of battery. + */ +static int cmd_rdbat(int ac, char *av[]) +{ + u8 i; + u8 index; + u8 val; + + if(ac < 2){ + printf("usage : rdbat %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("rdbat : access error!\n"); + return -1; + } + + for(i = 0; i < SMBDAT_SIZE; i++){ + wrec(REG_SMBDAT_START + i, 0x00); + } + printf("battery : index 0x%x \t", index); + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x01); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 0); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x6c|0x01); + wrec(REG_SMBCMD, index); + wrec(REG_SMBPRTCL, 0x07); + while(!(rdec(REG_SMBSTS) & (1 << 7))); + + val = rdec(REG_SMBDAT_START); + printf("value 0x%x\n", val); + + return 0; +} + +/* + * rdfan : read a register of temperature IC. + */ +static int cmd_rdfan(int ac, char *av[]) +{ + u8 index; + u8 val; + u8 i; + + wrec(REG_SMBCFG, rdec(REG_SMBCFG) & (~0x1f) | 0x04); + if(ac < 2){ + printf("usage : rdfan %index\n"); + return -1; + } + + if(!get_rsa(&index, av[1])) { + printf("rdfan : access error!\n"); + return -1; + } + + for(i = 0; i < SMBDAT_SIZE; i++){ + wrec(REG_SMBDAT_START + i, 0x00); + } + printf("fan : index 0x%x \t", index); + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x02); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 1); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x90|0x01); + wrec(REG_SMBCMD, index); + wrec(REG_SMBPRTCL, 0x09); + while(!(rdec(REG_SMBSTS) & (1 << 7))); + + val = rdec(REG_SMBDAT_START); + printf("value 0x%x\t", val); + val = rdec(REG_SMBDAT_START + 1); + printf("value2 0x%x\n", val); + + return 0; +} + +static inline int ec_flash_busy(void) +{ + unsigned char count = 0; + + while(count < 10){ + wrec(XBI_BANK | XBISPICMD, 5); + while( (rdec(XBI_BANK | XBISPICFG)) & (1 << 1) ); + if( (rdec(XBI_BANK | XBISPIDAT) & (1 << 0)) == 0x00 ){ + return 0x00; + } + count++; + } + + return 0x01; +} + +extern void delay(int us); +extern void ec_init_idle_mode(void); +extern void ec_exit_idle_mode(void); +extern void ec_get_product_id(void); +extern unsigned char ec_rom_id[3]; +static int cmd_readspiid(int ac, char *av[]) +{ + u8 cmd; + + if(!get_rsa(&cmd, av[1])) { + printf("xbi : access error!\n"); + return -1; + } + printf("read spi id command : 0x%x\n", cmd); + + + /* goto idle mode */ + ec_init_idle_mode(); + + /* get product id */ + ec_get_product_id(); + + /* out of idle mode */ + ec_exit_idle_mode(); + + printf("Manufacture ID 0x%x, Device ID : 0x%x 0x%x\n", ec_rom_id[0], ec_rom_id[1], ec_rom_id[2]); + return 0; +} + +/* + * xbird : read an EC rom address data througth XBI interface. + */ +extern unsigned char ec_rom_id[3]; +static int cmd_xbird(int ac, char *av[]) +{ + u8 val; + u32 addr; + u8 data; + int timeout; + + if(ac < 2){ + printf("usage : xbird start_address\n"); + return -1; + } + + if(!get_rsa(&addr, av[1])) { + printf("xbi : access error!\n"); + return -1; + } + + /* enable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG); + wrec(XBI_BANK | XBISPICFG, val | (1 << 3) | (1 << 0)); + + /* check is it busy. */ + if(ec_flash_busy()){ + printf("xbi : flash busy 1.\n"); + return -1; + } + + /* enable write spi flash */ + wrec(XBI_BANK | XBISPICMD, 6); + + /* write the address */ + wrec(XBI_BANK | XBISPIA2, (addr & 0xff0000) >> 16); + wrec(XBI_BANK | XBISPIA1, (addr & 0x00ff00) >> 8); + wrec(XBI_BANK | XBISPIA0, (addr & 0x0000ff) >> 0); + + /* start action */ + switch(ec_rom_id[0]){ + case EC_ROM_PRODUCT_ID_SPANSION : + wrec(XBI_BANK | XBISPICMD, 0x03); + break; + case EC_ROM_PRODUCT_ID_MXIC : + wrec(XBI_BANK | XBISPICMD, 0x0b); + break; + case EC_ROM_PRODUCT_ID_AMIC : + wrec(XBI_BANK | XBISPICMD, 0x0b); + break; + case EC_ROM_PRODUCT_ID_EONIC : + wrec(XBI_BANK | XBISPICMD, 0x0b); + break; + default : + printf("ec rom type not supported.\n"); + return -1; + } + + timeout = 0x10000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : read timeout.\n"); + return -1; + } + + /* get data */ + data = rdec(XBI_BANK | XBISPIDAT); + printf("ec : addr 0x%x\t, data 0x%x, %c\n", addr, data, data); + + val = rdec(XBI_BANK | XBISPICFG) & (~((1 << 3) | (1 << 0))); + wrec(XBI_BANK | XBISPICFG, val); + + return 0; +} + +/* + * xbiwr : write a byte to EC flash. + */ +static int cmd_xbiwr(int ac, char *av[]) +{ + u8 val; + u8 cmd; + u32 addr; + u8 data; + int timeout; + + if(ac < 3){ + printf("usage : xbiwr start_address val\n"); + return -1; + } + + if(!get_rsa(&addr, av[1])) { + printf("xbi : access error!\n"); + return -1; + } + if(!get_rsa(&data, av[2])) { + printf("xbi : access error!\n"); + return -1; + } + + /* enable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG); + wrec(XBI_BANK | XBISPICFG, val | (1 << 3) | (1 << 0)); + /* enable write spi flash */ + wrec(XBI_BANK | XBISPICMD, 6); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 1.\n"); + return -1; + } + + /* write the address and data */ + wrec(XBI_BANK | XBISPIA2, (addr & 0xff0000) >> 16); + wrec(XBI_BANK | XBISPIA1, (addr & 0x00ff00) >> 8); + wrec(XBI_BANK | XBISPIA0, (addr & 0x0000ff) >> 0); + wrec(XBI_BANK | XBISPIDAT, data); + /* start action */ + wrec(XBI_BANK | XBISPICMD, 2); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : read timeout.\n"); + return -1; + } + val = rdec(XBI_BANK | XBISPICFG) & (~((1 << 3) | (1 << 0))); + wrec(XBI_BANK | XBISPICFG, val); + + return 0; +} + +int cmd_testvideo(int ac, char *av[]) +{ + unsigned long addr; + if(ac < 2) + return -1; + addr = strtoul(av[1], NULL, 16); + printf("addr = 0x%x", addr); +// video_display_bitmap(addr, 280, 370); + return 1; +} + +static const Cmd Cmds[] = +{ + {"cs5536 debug"}, + {"powerdebug", "reg", NULL, "for debug the power state of sm712 graphic", cmd_powerdebug, 2, 99, CMD_REPEAT}, + {"rdmsr", "reg", NULL, "msr read test", cmd_rdmsr, 2, 99, CMD_REPEAT}, + {"wrmsr", "reg", NULL, "msr write test", cmd_wrmsr, 2, 99, CMD_REPEAT}, + + {"rdecreg", "reg", NULL, "KB3310 EC reg read test", cmd_rdecreg, 2, 99, CMD_REPEAT}, + {"wrecreg", "reg", NULL, "KB3310 EC reg write test", cmd_wrecreg, 2, 99, CMD_REPEAT}, + {"readspiid", "reg", NULL, "KB3310 read spi device id test", cmd_readspiid, 2, 99, CMD_REPEAT}, + {"rdbat", "reg", NULL, "KB3310 smbus battery reg read test", cmd_rdbat, 2, 99, CMD_REPEAT}, + {"rdfan", "reg", NULL, "KB3310 smbus fan reg read test", cmd_rdfan, 2, 99, CMD_REPEAT}, + {"xbiwr", "reg", NULL, "for debug write data to xbi interface of ec", cmd_xbiwr, 2, 99, CMD_REPEAT}, + {"xbird", "reg", NULL, "for debug read data from xbi interface of ec", cmd_xbird, 2, 99, CMD_REPEAT}, + {"testvideo", "reg", NULL, "for debug read data from xbi interface of ec", cmd_testvideo, 2, 99, CMD_REPEAT}, + {0}, +}; + + +static void init_cmd __P((void)) __attribute__ ((constructor)); + +static void +init_cmd() +{ + cmdlist_expand(Cmds, 1); +} + diff --git a/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 b/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 index e08c5e07..8b5b2761 100644 --- a/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 +++ b/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 @@ -141,16 +141,16 @@ pci* at pcibr? fxp0 at pci? dev ? function ? # Intel 82559 Device #inphy* at mii? phy ? # Intel 82555 PHYs rtk0 at pci? dev ? function ? -#uhci* at pci? dev ? function ? +uhci* at pci? dev ? function ? #ohci0 at pci? dev ? function ? -#usb* at usbbus ? +usb* at usbbus ? #ohci1 at pci? dev ? function ? -#select mod_usb -#select mod_usb_storage -#select mod_usb_uhci -#select mod_usb_ohci -#select mod_usb_kbd +select mod_usb +select mod_usb_storage +select mod_usb_uhci +select mod_usb_ohci +select mod_usb_kbd #### IDE controllers diff --git a/fb/cfb_console.c b/fb/cfb_console.c index d42242bf..1ced0e87 100644 --- a/fb/cfb_console.c +++ b/fb/cfb_console.c @@ -1524,16 +1524,20 @@ SWAP16 ((unsigned short) (((255 >> 3) << 11) | ((255 >> 2) << 5) | (255 >> 3))) }; static void __cprint(int y, int x,int width,char color, const char *buf) { +#ifndef FB_MENU_NOCLOLOR bgx = pallete[color>>4]; bgx |= (bgx << 16); fgx = pallete[color&0xf]; fgx |= (fgx << 16); eorx = fgx ^ bgx; +#endif video_console_print(x, y, buf); +#ifndef FB_MENU_NOCLOLOR bgx = 0; fgx = SWAP16 ((unsigned short) (((128 >> 3) << 11) | ((128 >> 2) << 5) | (128 >> 3))); fgx |= (fgx << 16); eorx = fgx ^ bgx; +#endif } void cprintfb(int y, int x,int width,char color, const char *text) diff --git a/include/kb3310.h b/include/kb3310.h new file mode 100644 index 00000000..10072a79 --- /dev/null +++ b/include/kb3310.h @@ -0,0 +1,99 @@ +/* + * KB3310.h + * + * Author : liujl + * Date : 2008-04-15 + */ + +/* We should make ec rom content and pmon port number equal. */ +/* if you use MX serial EC ROM, please select the option, otherwise mask it */ +//#define USING_MX_ROM + +#if 0 +#define HIGH_PORT 0xff2d +#define LOW_PORT 0xff2e +#define DATA_PORT 0xff2f +#else +#define HIGH_PORT 0x0381 +#define LOW_PORT 0x0382 +#define DATA_PORT 0x0383 +#endif + +/* xbi register in kb3310 */ +#define XBI_BANK 0xFE00 +#define XBISEG0 0xA0 +#define XBISEG1 0xA1 +#define XBIRSV2 0xA2 +#define XBIRSV3 0xA3 +#define XBIRSV4 0xA4 +#define XBICFG 0xA5 +#define XBICS 0xA6 +#define XBIWE 0xA7 +#define XBISPIA0 0xA8 +#define XBISPIA1 0xA9 +#define XBISPIA2 0xAA +#define XBISPIDAT 0xAB +#define XBISPICMD 0xAC +#define XBISPICFG 0xAD +#define XBISPIDATR 0xAE +#define XBISPICFG2 0xAF + +/* SMBUS relative register block according to the EC datasheet. */ +#define REG_SMBTCRC 0xff92 +#define REG_SMBPIN 0xff93 +#define REG_SMBCFG 0xff94 +#define REG_SMBEN 0xff95 +#define REG_SMBPF 0xff96 +#define REG_SMBRCRC 0xff97 +#define REG_SMBPRTCL 0xff98 +#define REG_SMBSTS 0xff99 +#define REG_SMBADR 0xff9a +#define REG_SMBCMD 0xff9b +#define REG_SMBDAT_START 0xff9c +#define REG_SMBDAT_END 0xffa3 +#define SMBDAT_SIZE 8 +#define REG_SMBRSA 0xffa4 +#define REG_SMBCNT 0xffbc +#define REG_SMBAADR 0xffbd +#define REG_SMBADAT0 0xffbe +#define REG_SMBADAT1 0xffbf + +/* watchdog timer registers */ +#define REG_WDTCFG 0xfe80 +#define REG_WDTPF 0xfe81 + +/* lpc configure register */ +#define REG_LPCCFG 0xfe95 + +/* 8051 reg */ +#define REG_PXCFG 0xff14 + +/* Fan register in KB3310 */ +#define REG_ECFAN_SPEED_LEVEL 0xf4e4 +#define REG_ECFAN_SWITCH 0xf4d2 + +#define EC_ROM_PRODUCT_ID_SPANSION 0x01 +#define EC_ROM_PRODUCT_ID_MXIC 0xC2 +#define EC_ROM_PRODUCT_ID_AMIC 0x37 +#define EC_ROM_PRODUCT_ID_EONIC 0x1C + +/* version burned address */ +#define VER_ADDR 0xf7a2 //0xf300 +#define VER_MAX_SIZE 7 //0x40 +#define EC_ROM_MAX_SIZE 0xf7a8 //0xf400 + +/* access ec register content */ +static inline void wrec(unsigned short reg, unsigned char val) +{ + *( (volatile unsigned char *)(0xbfd00000 | HIGH_PORT) ) = (reg & 0xff00) >> 8; + *( (volatile unsigned char *)(0xbfd00000 | LOW_PORT) ) = (reg & 0x00ff); + *( (volatile unsigned char *)(0xbfd00000 | DATA_PORT) ) = val; +} + +static inline unsigned char rdec(unsigned short reg) +{ + *( (volatile unsigned char *)(0xbfd00000 | HIGH_PORT) ) = (reg & 0xff00) >> 8; + *( (volatile unsigned char *)(0xbfd00000 | LOW_PORT) ) = (reg & 0x00ff); + return (*( (volatile unsigned char *)(0xbfd00000 | DATA_PORT) )); +} + diff --git a/pmon/dev/kbd.c b/pmon/dev/kbd.c index 5edc9046..79b88a2d 100644 --- a/pmon/dev/kbd.c +++ b/pmon/dev/kbd.c @@ -3,7 +3,6 @@ #include #include"kbd.h" - /* * Translation of escaped scancodes to keycodes. * This is now user-settable. @@ -19,7 +18,7 @@ #define E0_KPSLASH 98 #define E0_PRSCR 99 #define E0_RALT 100 -#define E0_BREAK 101 /* (control-pause) */ +#define E0_BREAK 101 /* (control-pause) */ #define E0_HOME 102 #define E0_UP 103 #define E0_PGUP 104 @@ -57,22 +56,22 @@ char inputbuf[300]; static unsigned char e0_keys[128] = { - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00-0x07 */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08-0x0f */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10-0x17 */ - 0, 0, 0, 0, E0_KPENTER, E0_RCTRL, 0, 0, /* 0x18-0x1f */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20-0x27 */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x28-0x2f */ - 0, 0, 0, 0, 0, E0_KPSLASH, 0, E0_PRSCR, /* 0x30-0x37 */ - E0_RALT, 0, 0, 0, 0, E0_F13, E0_F14, E0_HELP, /* 0x38-0x3f */ - E0_DO, E0_F17, 0, 0, 0, 0, E0_BREAK, E0_HOME, /* 0x40-0x47 */ - E0_UP, E0_PGUP, 0, E0_LEFT, E0_OK, E0_RIGHT, E0_KPMINPLUS, E0_END,/* 0x48-0x4f */ - E0_DOWN, E0_PGDN, E0_INS, E0_DEL, 0, 0, 0, 0, /* 0x50-0x57 */ - 0, 0, 0, E0_MSLW, E0_MSRW, E0_MSTM, 0, 0, /* 0x58-0x5f */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 */ - 0, 0, 0, 0, 0, 0, 0, E0_MACRO, /* 0x68-0x6f */ - 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70-0x77 */ - 0, 0, 0, 0, 0, 0, 0, 0 /* 0x78-0x7f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00-0x07 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08-0x0f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10-0x17 */ + 0, 0, 0, 0, E0_KPENTER, E0_RCTRL, 0, 0, /* 0x18-0x1f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20-0x27 */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x28-0x2f */ + 0, 0, 0, 0, 0, E0_KPSLASH, 0, E0_PRSCR, /* 0x30-0x37 */ + E0_RALT, 0, 0, 0, 0, E0_F13, E0_F14, E0_HELP, /* 0x38-0x3f */ + E0_DO, E0_F17, 0, 0, 0, 0, E0_BREAK, E0_HOME, /* 0x40-0x47 */ + E0_UP, E0_PGUP, 0, E0_LEFT, E0_OK, E0_RIGHT, E0_KPMINPLUS, E0_END, /* 0x48-0x4f */ + E0_DOWN, E0_PGDN, E0_INS, E0_DEL, 0, 0, 0, 0, /* 0x50-0x57 */ + 0, 0, 0, E0_MSLW, E0_MSRW, E0_MSTM, 0, 0, /* 0x58-0x5f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x60-0x67 */ + 0, 0, 0, 0, 0, 0, 0, E0_MACRO, /* 0x68-0x6f */ + 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70-0x77 */ + 0, 0, 0, 0, 0, 0, 0, 0 /* 0x78-0x7f */ }; static void kbd_wait(void); void kbd_poll(void); @@ -105,38 +104,38 @@ unsigned int esc_seq; unsigned int esc_code; extern void delay __P((int)); -typedef void (*k_hand)(unsigned char value, char up_flag); -typedef void (k_handfn)(unsigned char value, char up_flag); +typedef void (*k_hand) (unsigned char value, char up_flag); +typedef void (k_handfn) (unsigned char value, char up_flag); static k_handfn - do_self, do_fn, do_spec, do_pad, do_dead, do_cons, do_cur, do_shift; + do_self, do_fn, do_spec, do_pad, do_dead, do_cons, do_cur, do_shift; /* do_meta, do_ascii, do_lock, do_lowercase, do_slock, do_dead2, do_ignore; */ static k_hand key_handler[16] = { - do_self , do_fn, do_spec, do_pad, do_dead, do_cons, do_cur, do_shift, -// do_meta, do_ascii, do_lock, do_lowercase, do_slock, do_dead2, -// do_ignore, do_ignore + do_self, do_fn, do_spec, do_pad, do_dead, do_cons, do_cur, do_shift, +// do_meta, do_ascii, do_lock, do_lowercase, do_slock, do_dead2, +// do_ignore, do_ignore }; -typedef void (*void_fnp)(void); -typedef void (void_fn)(void); +typedef void (*void_fnp) (void); +typedef void (void_fn) (void); static void_fn do_null, enter; /*show_ptregs, send_intr, lastcons, caps_toggle, - num, hold, scroll_forw, scroll_back, boot_it, caps_on, compose, - SAK, decr_console, incr_console, spawn_console, bare_num;*/ + num, hold, scroll_forw, scroll_back, boot_it, caps_on, compose, + SAK, decr_console, incr_console, spawn_console, bare_num; */ static void_fnp spec_fn_table[16] = { - do_null, enter, /*show_ptregs, show_mem, - show_state, send_intr, lastcons, caps_toggle, - num, hold, scroll_forw, scroll_back, - boot_it, caps_on, compose, SAK, - decr_console, incr_console, spawn_console, bare_num */ + do_null, enter, /*show_ptregs, show_mem, + show_state, send_intr, lastcons, caps_toggle, + num, hold, scroll_forw, scroll_back, + boot_it, caps_on, compose, SAK, + decr_console, incr_console, spawn_console, bare_num */ }; -int shift_state=0; +int shift_state = 0; /* * Wait for keyboard controller input buffer to drain. @@ -162,35 +161,36 @@ static void kbd_wait(void) */ unsigned char status = handle_kbd_event(); - if (! (status & KBD_STAT_IBF)) + if (!(status & KBD_STAT_IBF)) return; delay(1000); timeout--; } while (timeout); } + #define SEND_ESC_SEQ(c) \ esc_code = c; \ esc_seq = 1; void kbd_poll() { - if(esc_seq){ - switch(esc_seq){ - case 1: - kbd_code = 0x1b; - esc_seq++; - break; - case 2: - kbd_code = '['; - esc_seq++; - break; - case 3: - kbd_code = esc_code; - esc_seq = 0; + if (esc_seq) { + switch (esc_seq) { + case 1: + kbd_code = 0x1b; + esc_seq++; + break; + case 2: + kbd_code = '['; + esc_seq++; + break; + case 3: + kbd_code = esc_code; + esc_seq = 0; } - }else{ - while (kbd_read_status()& KBD_STAT_OBF) - handle_kbd_event(); + } else { + while (kbd_read_status() & KBD_STAT_OBF) + handle_kbd_event(); } } @@ -216,7 +216,6 @@ static void kbd_write_command_w(int data) kbd_write_command(data); } - static int kbd_wait_for_input(void) { long timeout = KBD_INIT_TIMEOUT; @@ -230,14 +229,12 @@ static int kbd_wait_for_input(void) return -1; } - static void kbd_write_output_w(int data) { kbd_wait(); kbd_write_output(data); } - static int kbd_write_command_w_and_wait(int data) { kbd_write_command_w(data); @@ -250,7 +247,6 @@ static int kbd_write_output_w_and_wait(int data) return kbd_wait_for_input(); } - static void kbd_clear_input(void) { int maxread = 100; /* Random number */ @@ -261,7 +257,7 @@ static void kbd_clear_input(void) } while (--maxread); } -const char *kbd_error_msgs[]={ +const char *kbd_error_msgs[] = { "Keyboard succesfully initialized.", "Keyboard failed self test", "Keyboard reset failed, no ACK", @@ -272,10 +268,33 @@ const char *kbd_error_msgs[]={ "Set rate: no 2nd ACK" }; +#ifdef LOONGSON2F_7INCH +/********************************************************/ +#include "include/kb3310.h" +/* we just ensure there is code in EC, and the keyboard will work. */ +static int kb3310_test(void) +{ + unsigned char val; + val = rdec(0x00); + if(val == 0xff) + return 1; + + return 0; +} +#endif + int kbd_initialize(void) { int status; - + int count; + +#ifdef LOONGSON2F_7INCH + status = kb3310_test(); + if(status != 0){ + printf("Waring!! You should burn the flash rom first for kbd initial.\n"); + } +#endif + /* Flush the buffer */ kbd_clear_input(); @@ -285,11 +304,6 @@ int kbd_initialize(void) * If the test is successful a x55 is placed in the input buffer. */ kbd_write_command_w(KBD_CCMD_SELF_TEST); - kbd_write_command_w(KBD_CCMD_SELF_TEST); - kbd_write_command_w(KBD_CCMD_SELF_TEST); - kbd_write_command_w(KBD_CCMD_SELF_TEST); - kbd_write_command_w(KBD_CCMD_SELF_TEST); - if (kbd_wait_for_input() != 0x55) { printf("Self test cmd failed,ignored!\n"); //return 1; @@ -301,7 +315,7 @@ int kbd_initialize(void) * test are placed in the input buffer. */ kbd_write_command_w(KBD_CCMD_KBD_TEST); - if (kbd_wait_for_input() != 0x00) { + if (kbd_wait_for_input() != 0x00) { printf("KBD_TEST cmd failed,ignored!\n"); //return 1; } @@ -319,21 +333,22 @@ int kbd_initialize(void) * * Set up to try again if the keyboard asks for RESEND. */ + count = 0; do { - kbd_clear_input(); - kbd_write_output_w(KBD_CMD_RESET); - kbd_clear_input(); kbd_write_output_w(KBD_CMD_RESET); status = kbd_wait_for_input(); - if (status == KBD_REPLY_ACK){ + if (status == KBD_REPLY_ACK) break; + if (status != KBD_REPLY_RESEND) { + printf("reset failed\n"); + if (++count > 1) + break; + //return 2; } - if (status != KBD_REPLY_RESEND) - return 2; } while (1); if (kbd_wait_for_input() != KBD_REPLY_POR) { - //printf("NO POR, ignored!\n"); + printf("NO POR, ignored!\n"); //return 3; } @@ -343,28 +358,29 @@ int kbd_initialize(void) * * Set up to try again if the keyboard asks for RESEND. */ + count = 0; #ifndef FCRSOC do { kbd_write_output_w(KBD_CMD_DISABLE); status = kbd_wait_for_input(); if (status == KBD_REPLY_ACK) break; - /* - if (status != KBD_REPLY_RESEND) - return 4; - */ + if (status != KBD_REPLY_RESEND) { + printf("disable failed\n"); + if (++count > 1) + break; + //return 4; + } } while (1); #endif kbd_write_command_w(KBD_CCMD_WRITE_MODE); kbd_write_output_w(KBD_MODE_KBD_INT - | KBD_MODE_SYS - | KBD_MODE_DISABLE_MOUSE - | KBD_MODE_KCC); + | KBD_MODE_SYS + | KBD_MODE_DISABLE_MOUSE | KBD_MODE_KCC); #if 1 /* ibm powerpc portables need this to use scan-code set 1 -- Cort */ - if (!(kbd_write_command_w_and_wait(KBD_CCMD_READ_MODE) & KBD_MODE_KCC)) - { + if (!(kbd_write_command_w_and_wait(KBD_CCMD_READ_MODE) & KBD_MODE_KCC)) { /* * If the controller does not support conversion, * Set the keyboard to scan-code set 1. @@ -376,23 +392,22 @@ int kbd_initialize(void) } #endif if (kbd_write_output_w_and_wait(KBD_CMD_ENABLE) != KBD_REPLY_ACK) { - //return 5; + return 5; } /* * Finally, set the typematic rate to maximum. */ if (kbd_write_output_w_and_wait(KBD_CMD_SET_RATE) != KBD_REPLY_ACK) { - //return 6; + return 6; } if (kbd_write_output_w_and_wait(0x00) != KBD_REPLY_ACK) { - //return 7; + return 7; } return 0; } - int kbd_translate(unsigned char scancode, unsigned char *keycode) { static int prev_scancode; @@ -412,36 +427,36 @@ int kbd_translate(unsigned char scancode, unsigned char *keycode) scancode &= 0x7f; if (prev_scancode) { - if (prev_scancode != 0xe0) { - return 0; - } else { - prev_scancode = 0; - /* - * The keyboard maintains its own internal caps lock and - * num lock statuses. In caps lock mode E0 AA precedes make - * code and E0 2A follows break code. In num lock mode, - * E0 2A precedes make code and E0 AA follows break code. - * We do our own book-keeping, so we will just ignore these. - */ - /* - * For my keyboard there is no caps lock mode, but there are - * both Shift-L and Shift-R modes. The former mode generates - * E0 2A / E0 AA pairs, the latter E0 B6 / E0 36 pairs. - * So, we should also ignore the latter. - aeb@cwi.nl - */ - if (scancode == 0x2a || scancode == 0x36) - return 0; - - if (e0_keys[scancode]) - *keycode = e0_keys[scancode]; - else { - return 0; - } - } + if (prev_scancode != 0xe0) { + return 0; + } else { + prev_scancode = 0; + /* + * The keyboard maintains its own internal caps lock and + * num lock statuses. In caps lock mode E0 AA precedes make + * code and E0 2A follows break code. In num lock mode, + * E0 2A precedes make code and E0 AA follows break code. + * We do our own book-keeping, so we will just ignore these. + */ + /* + * For my keyboard there is no caps lock mode, but there are + * both Shift-L and Shift-R modes. The former mode generates + * E0 2A / E0 AA pairs, the latter E0 B6 / E0 36 pairs. + * So, we should also ignore the latter. - aeb@cwi.nl + */ + if (scancode == 0x2a || scancode == 0x36) + return 0; + + if (e0_keys[scancode]) + *keycode = e0_keys[scancode]; + else { + return 0; + } + } } else { - *keycode = scancode; + *keycode = scancode; } - return 1; + return 1; } static inline void handle_mouse_event(unsigned char scancode); @@ -469,7 +484,7 @@ static unsigned char handle_kbd_event(void) if (!(status & (KBD_STAT_GTO | KBD_STAT_PERR))) #endif { - if (status & KBD_STAT_MOUSE_OBF) + if (status & KBD_STAT_MOUSE_OBF) handle_mouse_event(scancode); else handle_keyboard_event(scancode); @@ -477,7 +492,7 @@ static unsigned char handle_kbd_event(void) status = kbd_read_status(); } - + if (!work) printf("controller jammed (0x%02X).\n", status); @@ -491,11 +506,11 @@ static volatile unsigned char resend; static int do_acknowledge(unsigned char scancode) { if (reply_expected) { - /* Unfortunately, we must recognise these codes only if we know they - * are known to be valid (i.e., after sending a command), because there - * are some brain-damaged keyboards (yes, FOCUS 9000 again) which have - * keys with such codes :( - */ + /* Unfortunately, we must recognise these codes only if we know they + * are known to be valid (i.e., after sending a command), because there + * are some brain-damaged keyboards (yes, FOCUS 9000 again) which have + * keys with such codes :( + */ if (scancode == KBD_REPLY_ACK) { acknowledge = 1; reply_expected = 0; @@ -509,11 +524,11 @@ static int do_acknowledge(unsigned char scancode) return 1; } - static inline void handle_keyboard_event(unsigned char scancode) { - if (do_acknowledge(scancode)) handle_scancode(scancode, !(scancode & 0x80)); -} + if (do_acknowledge(scancode)) + handle_scancode(scancode, !(scancode & 0x80)); +} int kbd_test=0; int kbd_test_hit=0; @@ -534,65 +549,94 @@ void handle_scancode(unsigned char scancode, int down) * characters get echoed locally. This makes key repeat usable * with slow applications and under heavy loads. */ - if (1){ + if (1) { u_short keysym; u_char type; - - ushort *key_map = key_maps[shift_state];; + + ushort *key_map = key_maps[shift_state]; if (key_map != NULL) { keysym = key_map[keycode]; type = KTYP(keysym); + // printf("keycode = %d\n",keycode); + // printf("[kbd] keysym %x\n", keysym); if (type >= 0xf0) { - type -= 0xf0; - if (type == KT_LETTER) + type -= 0xf0; + if (type == KT_LETTER) { type = KT_LATIN; - if (*key_handler[type]) (*key_handler[type])(keysym & 0xff, up_flag); - } - } + } + if (*key_handler[type]) { + (*key_handler[type]) (keysym & 0xff, + up_flag); + } + } + } } -out:; + out:; } - - static void do_self(unsigned char value, char up_flag) { if (up_flag) return; /* no action, if this is a key release */ - kbd_code=value; + kbd_code = value; } - static void do_cons(unsigned char value, char up_flag) { - printf("do_cons value=%x\n",value); + printf("do_cons value=%x\n", value); } static void do_fn(unsigned char value, char up_flag) { - if(!up_flag){ - switch(value){ - case 0x14:SEND_ESC_SEQ('H');break; - case 0x17:SEND_ESC_SEQ('F');break; + if (!up_flag) { + switch (value) { + case 0x14: + SEND_ESC_SEQ('H'); + break; + case 0x16: + SEND_ESC_SEQ('G'); /*Delete Key*/ + break; + case 0x17: + SEND_ESC_SEQ('F'); + break; } } } static void do_pad(unsigned char value, char up_flag) { - printf("do_pad value=%x\n",value); + if (!up_flag) { + switch (value) { + case 0x10: + SEND_ESC_SEQ('G'); + break; + case 0xe: + kbd_code = 10; + default: + break; + } + } + printf("do_pad value=%x\n", value); } static void do_cur(unsigned char value, char up_flag) { - if(!up_flag){ - switch(value){ - case 0:SEND_ESC_SEQ('B');break; - case 1:SEND_ESC_SEQ('D');break; - case 2:SEND_ESC_SEQ('C');break; - case 3:SEND_ESC_SEQ('A');break; + if (!up_flag) { + switch (value) { + case 0: + SEND_ESC_SEQ('B'); + break; + case 1: + SEND_ESC_SEQ('D'); + break; + case 2: + SEND_ESC_SEQ('C'); + break; + case 3: + SEND_ESC_SEQ('A'); + break; } } } @@ -600,79 +644,85 @@ static void do_cur(unsigned char value, char up_flag) static void do_shift(unsigned char value, char up_flag) { if (up_flag) { - shift_state=0; - }else if(value==0){//key shift - shift_state=1; - }else if(value==2){//key ctrl - shift_state=2; + shift_state = 0; + } else if (value == 0) { //key shift + shift_state = 1; + } else if (value == 2) { //key ctrl + shift_state = 2; +#ifdef SPANISH + } else { //key AltGr spanish + shift_state = 3; +#endif } -// printf("do_shift value=0x%x,shift_state=0x%x\n",value,shift_state); +// printf("do_shift value=0x%x,shift_state=0x%x\n",value,shift_state); } - static void do_null() { -// compute_shiftstate(); +// compute_shiftstate(); } static void enter(void) { -// extern void vga_set_enter(); -// vga_set_enter(); - kbd_code='\n'; +// extern void vga_set_enter(); +// vga_set_enter(); + kbd_code = '\n'; } static void do_spec(unsigned char value, char up_flag) { if (up_flag) return; -// printf("do_spec value=%x\n",value); +// printf("do_spec value=%x\n",value); //#define SIZE(x) (sizeof(x)/sizeof((x)[0])) -// if (value >= SIZE(spec_fn_table)) return; - if (spec_fn_table[value]) spec_fn_table[value](); +// if (value >= SIZE(spec_fn_table)) return; + if (spec_fn_table[value]) + spec_fn_table[value] (); } static void do_dead(unsigned char value, char up_flag) { -// printf("do_dead value=%x\n",value); +// printf("do_dead value=%x\n",value); } -#define KBD_CMD_SET_LEDS 0xED /* Set keyboard leds */ +#define KBD_CMD_SET_LEDS 0xED /* Set keyboard leds */ #define mdelay delay1 static int send_data(unsigned char data) { - int retries = 3; - - do { - unsigned long timeout = KBD_TIMEOUT; - - acknowledge = 0; /* Set by interrupt routine on receipt of ACK. */ - resend = 0; - reply_expected = 1; - kbd_write_output_w(data); - for (;;) { - if (acknowledge) - return 1; - if (resend) - break; - mdelay(1); - if (!--timeout) { - printf("keyboard: Timeout - AT keyboard not present?(%02x)\n", data); - return 0; - } - } - } while (retries-- > 0); - printf( "keyboard: Too many NACKs -- noisy kbd cable?\n"); - return 0; + int retries = 3; + + do { + unsigned long timeout = KBD_TIMEOUT; + + acknowledge = 0; /* Set by interrupt routine on receipt of ACK. */ + resend = 0; + reply_expected = 1; + kbd_write_output_w(data); + for (;;) { + if (acknowledge) + return 1; + if (resend) + break; + mdelay(1); + if (!--timeout) { + printf + ("keyboard: Timeout - AT keyboard not present?(%02x)\n", + data); + return 0; + } + } + } while (retries-- > 0); + printf("keyboard: Too many NACKs -- noisy kbd cable?\n"); + return 0; } void pckbd_leds(unsigned char leds) { - if (kbd_available && (!send_data(KBD_CMD_SET_LEDS) || !send_data(leds))) { - send_data(KBD_CMD_ENABLE); /* re-enable kbd if any errors */ - kbd_available = 0; - } + if (kbd_available && (!send_data(KBD_CMD_SET_LEDS) || !send_data(leds))) { + send_data(KBD_CMD_ENABLE); /* re-enable kbd if any errors */ + kbd_available = 0; + } } //--------------------------------------mouse------------------------------- diff --git a/sys/dev/pci/files.pci b/sys/dev/pci/files.pci index 5426df6e..b4cd88a6 100644 --- a/sys/dev/pci/files.pci +++ b/sys/dev/pci/files.pci @@ -73,8 +73,8 @@ attach ppb at pci file sys/dev/pci/ppb.c ppb file sys/dev/pci/pcidevs.c pci -file sys/dev/pci/vt82c686.c pci&vt82c686 -file sys/dev/pci/cs5536.c pci&cs5536 +file sys/dev/pci/vt82c686.c (pci&vt82c686) needs-flag +file sys/dev/pci/cs5536.c (pci&cs5536) needs-flag file sys/dev/pci/kb3310.c (cs5536 & pci&kb3310) needs-flag #added by yh diff --git a/sys/dev/pci/pcidevs.h b/sys/dev/pci/pcidevs.h index ad196efe..c21595f5 100644 --- a/sys/dev/pci/pcidevs.h +++ b/sys/dev/pci/pcidevs.h @@ -682,6 +682,7 @@ /* http://www.amd.com/products/cpg/athlon/techdocs/pdf/22548.pdf */ #define PCI_PRODUCT_AMD_PBC756_ISA 0x7408 /* 756 PCI-ISA */ #define PCI_PRODUCT_AMD_PBC756_IDE 0x7409 /* 756 IDE */ +#define PCI_PRODUCT_AMD_CS5536_IDE 0x209A /* CS5536 IDE */ #define PCI_PRODUCT_AMD_PBC756_PMC 0x740b /* 756 Power Mgmt */ #define PCI_PRODUCT_AMD_PBC756_USB 0x740c /* 756 USB Host */ #define PCI_PRODUCT_AMD_766_ISA 0x7410 /* 766 PCI-ISA */ diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c index 57f72eca..6b98fc16 100644 --- a/sys/dev/pci/pciide.c +++ b/sys/dev/pci/pciide.c @@ -103,9 +103,9 @@ int wdcdebug_pciide_mask = DEBUG_DMA|DEBUG_XFERS|DEBUG_FUNCS|DEBUG_PROBE; #include #include #include -#ifndef PMON #include #include +#ifndef PMON #endif #include #ifndef PMON @@ -200,10 +200,12 @@ static u_int32_t piix_setup_idetim_timings __P((u_int8_t, u_int8_t, u_int8_t)); static u_int32_t piix_setup_idetim_drvs __P((struct ata_drive_datas*)); static u_int32_t piix_setup_sidetim_timings __P((u_int8_t, u_int8_t, u_int8_t)); -#ifndef PMON void amd756_chip_map __P((struct pciide_softc*, struct pci_attach_args*)); void amd756_setup_channel __P((struct channel_softc*)); +void amdcs5536_chip_map __P((struct pciide_softc*, struct pci_attach_args*)); +void amdcs5536_setup_channel __P((struct channel_softc*)); +#ifndef PMON void apollo_chip_map __P((struct pciide_softc*, struct pci_attach_args*)); void apollo_setup_channel __P((struct channel_softc*)); #endif @@ -289,14 +291,16 @@ const struct pciide_product_desc pciide_intel_products[] = { }, }; -#ifndef PMON const struct pciide_product_desc pciide_amd_products[] = { { PCI_PRODUCT_AMD_PBC756_IDE, /* AMD 756 */ 0, amd756_chip_map }, + { PCI_PRODUCT_AMD_CS5536_IDE, /* AMD CS5536 */ + 0, + amdcs5536_chip_map + }, }; -#endif const struct pciide_product_desc pciide_cmd_products[] = { { PCI_PRODUCT_CMDTECH_640, /* CMD Technology PCI0640 */ @@ -391,10 +395,8 @@ struct pciide_vendor_desc { const struct pciide_vendor_desc pciide_vendors[] = { { PCI_VENDOR_INTEL, pciide_intel_products, sizeof(pciide_intel_products)/sizeof(pciide_intel_products[0]) }, -#ifndef PMON { PCI_VENDOR_AMD, pciide_amd_products, sizeof(pciide_amd_products)/sizeof(pciide_amd_products[0]) }, -#endif { PCI_VENDOR_CMDTECH, pciide_cmd_products, sizeof(pciide_cmd_products)/sizeof(pciide_cmd_products[0]) }, #ifndef PMON @@ -1761,7 +1763,6 @@ piix_setup_sidetim_timings(mode, dma, channel) PIIX_SIDETIM_RTC_SET(piix_rtc_pio[mode], channel); } -#ifndef PMON void amd756_chip_map(sc, pa) struct pciide_softc *sc; @@ -1820,6 +1821,94 @@ amd756_chip_map(sc, pa) return; } +static unsigned int amd_ide_clock; + +void +amdcs5536_chip_map (sc, pa) + struct pciide_softc *sc; + struct pci_attach_args *pa; +{ + struct pciide_channel *cp; + //pcireg_t interface = PCI_INTERFACE(pci_conf_read(sc->sc_pc, + // sc->sc_tag, PCI_CLASS_REG)); + pcireg_t interface = 0x00; + int channel; + bus_size_t cmdsize, ctlsize; + + if (pciide_chipen(sc, pa) == 0) + return; + + amd_ide_clock = 33333; /*Assume 33M bus clock*/ + + printf(": DMA"); + pciide_mapreg_dma(sc, pa); + + if (sc->sc_dma_ok) + sc->sc_wdcdev.cap |= WDC_CAPABILITY_DMA | WDC_CAPABILITY_UDMA; + sc->sc_wdcdev.cap |= WDC_CAPABILITY_DATA16 | WDC_CAPABILITY_DATA32 | + WDC_CAPABILITY_MODE; + sc->sc_wdcdev.PIO_cap = 4; + sc->sc_wdcdev.DMA_cap = 0; /*FIXME Yanhua */ + sc->sc_wdcdev.UDMA_cap = 0; + sc->sc_wdcdev.set_modes = amdcs5536_setup_channel; + sc->sc_wdcdev.channels = sc->wdc_chanarray; + sc->sc_wdcdev.nchannels = PCIIDE_NUM_CHANNELS; + sc->sc_wdcdev.cap |= WDC_CAPABILITY_DATA16; + + pciide_print_channels(sc->sc_wdcdev.nchannels, interface); + + for (channel = 0; channel < sc->sc_wdcdev.nchannels; channel++) { + cp = &sc->pciide_channels[channel]; + if (pciide_chansetup(sc, channel, interface) == 0) + continue; + /* Maybe we need to detect the chanel is enabled. Yanhua */ + + /* Really initialization work begin here */ + pciide_mapchan(pa, cp, interface, &cmdsize, &ctlsize, + pciide_pci_intr); + + pciide_map_compat_intr(pa, cp, channel, interface); + if (cp->hw_ok == 0) + continue; + + amdcs5536_setup_channel(&cp->wdc_channel); + } + return; +} + +void amdcs5536_setup_channel(chp) + struct channel_softc* chp; +{ + u_int32_t drive_reg, cast_reg; + int mode, drive; + struct ata_drive_datas *drvp; + struct pciide_channel *cp = (struct pciide_channel*)chp; + struct pciide_softc *sc = (struct pciide_softc *)cp->wdc_channel.wdc; + + cast_reg = pci_conf_read(sc->sc_pc, sc->sc_tag, AMDCS5536_ADDRESS_SETUP); + drive_reg = pci_conf_read(sc->sc_pc, sc->sc_tag, AMDCS5536_DRIVE_TIMING); + cast_reg &= 0x00ffff0f; + drive_reg &= 0x0000ffff; + + for (drive = 0; drive < 1; drive++) { + drvp = &chp->ch_drive[drive]; + drvp->PIO_mode &= 0x7; + if(drvp->PIO_mode >4) + drvp->PIO_mode = 4; + + mode = drvp->PIO_mode; + cast_reg |= (amdcs5536_pio_set[mode].cyc << 28) | + (amdcs5536_pio_set[mode].cyc <<24 ) | + (amdcs5536_pio_set[mode].setup <<6) | + (amdcs5536_pio_set[mode].setup <<4) ; + + drive_reg |= (amdcs5536_pio_set[mode].data <<24) | + (amdcs5536_pio_set[mode].data <<16); + } + pci_conf_write(sc->sc_pc, sc->sc_tag, AMDCS5536_ADDRESS_SETUP, cast_reg); + pci_conf_write(sc->sc_pc, sc->sc_tag, AMDCS5536_DRIVE_TIMING, drive_reg); +} + void amd756_setup_channel(chp) struct channel_softc *chp; @@ -1897,7 +1986,6 @@ pio: /* setup PIO mode */ pci_conf_write(sc->sc_pc, sc->sc_tag, AMD756_DATATIM, datatim_reg); pci_conf_write(sc->sc_pc, sc->sc_tag, AMD756_UDMA, udmatim_reg); } -#endif #ifndef PMON void diff --git a/sys/dev/pci/pciide_amd_reg.h b/sys/dev/pci/pciide_amd_reg.h index f683e173..efd77502 100644 --- a/sys/dev/pci/pciide_amd_reg.h +++ b/sys/dev/pci/pciide_amd_reg.h @@ -50,6 +50,25 @@ #define AMD756_DATATIM_PULSE(channel, drive, x) (((x) & 0xf) << \ (((1 - (channel)) << 4) + ((1 - (drive)) << 3) + 4)) +#define AMDCS5536_DRIVE_TIMING 0x48 +#define AMDCS5536_ADDRESS_SETUP 0x4c +#define AMDCS5536_8BIT_TIMING 0x4e +#define AMDCS5536_UDMA_TIMING 0x50 + +struct ide_timing { + int cyc; /*cycle time*/ + int setup; /*Address setup time*/ + int data; /*pulse width, and recovery time*/ +}; + +static struct ide_timing amdcs5536_pio_set[5] = { + {0x09, 0x02, 0x98}, /* PIO 0 */ + {0x09, 0x01, 0x55}, /* PIO 1 */ + {0x09, 0x00, 0x32}, /* PIO 2 */ + {0x02, 0x00, 0x21}, /* PIO 3 */ + {0x02, 0x99, 0x20}, /* PIO 4 */ +}; + static const int8_t amd756_pio_set[] = {0x0a, 0x0a, 0x0a, 0x02, 0x02}; static const int8_t amd756_pio_rec[] = {0x08, 0x08, 0x08, 0x02, 0x00}; diff --git a/sys/dev/usb/cmd_usb.c b/sys/dev/usb/cmd_usb.c index 9e2770c8..4688f7f6 100644 --- a/sys/dev/usb/cmd_usb.c +++ b/sys/dev/usb/cmd_usb.c @@ -152,7 +152,7 @@ void usb_display_string(struct usb_device *dev,int index) void usb_display_desc(struct usb_device *dev) { if (dev->descriptor.bDescriptorType==USB_DT_DEVICE) { - printf("%d: %s, USB Revision %x.%x\n",dev->devnum,usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass), + printf("%d(%d): %s, USB Revision %x.%x\n",dev->devnum,dev->port,usb_get_class_desc(dev->config.if_desc[0].bInterfaceClass), (dev->descriptor.bcdUSB>>8) & 0xff,dev->descriptor.bcdUSB & 0xff); if (strlen(dev->mf) || strlen(dev->prod) || strlen(dev->serial)) printf(" - %s %s %s\n",dev->mf,dev->prod,dev->serial); @@ -311,10 +311,14 @@ void usb_show_tree(struct usb_device *dev) */ static char *USB_usage[] = { "usb - USB sub-system\n", +#ifdef __not_used__ "usb stor - scanning usb storage device\n", +#endif "usb tree - show USB device tree\n", "usb info [dev] - show available USB devices\n", +#ifdef __not_used__ "usb storage - show details of USB storage devices\n", +#endif "usb dev [dev] - show or set current USB storage device\n", "usb read addr blk# cnt - read `cnt' blocks starting at block `blk#'\n" " to memory address `addr'\n" @@ -355,12 +359,14 @@ static int do_usb (int argc, char *argv[]) return 0; } +#ifdef __not_used__ if (strncmp(argv[1], "stor", 5) == 0 ){ printf("scanning USB storage device...\n"); /* try to recognize storage devices immediately */ usb_stor_curr_dev = usb_stor_scan(1); return 0; } +#endif #if 0 if (strncmp(argv[1],"stop",4) == 0) { if (argc==2) { @@ -418,17 +424,19 @@ static int do_usb (int argc, char *argv[]) } return 0; } -#if NMOD_USB_OHCI > 0 +#if NMOD_USB_OHCI > 0 && defined(__not_used__) if (strncmp(argv[1], "scan", 4) == 0) { do_scan_usb_bus(&host_controller); return 0; } #endif +#ifdef __not_used__ if (strncmp(argv[1], "stor", 4) == 0) { usb_stor_info(); return 0; } +#endif if (strcmp(argv[1],"read") == 0) { if (usb_stor_curr_dev<0) { @@ -500,5 +508,4 @@ static void init_cmd(void) __attribute__((constructor)); static void init_cmd(void) { cmdlist_expand(Cmds, 1); - printf("USB init\n"); } diff --git a/sys/dev/usb/usb-ohci.c b/sys/dev/usb/usb-ohci.c index 75fadd13..ba0a717d 100644 --- a/sys/dev/usb/usb-ohci.c +++ b/sys/dev/usb/usb-ohci.c @@ -57,10 +57,6 @@ Date Author Activity ID Activity Headline 2008-03-10 QianYuli PMON00000001 Add comment to each function 2008-02-28 QianYuli PMON00000001 Add multi-usb-devices supports - 2008-05-06 Felix.Qian PMON00000002 Fix some bugs for the stability of - (QianYuli^_^) multi-usb-devices working - -------------------------------------------------------------------------- - *************************************************************************/ #include @@ -92,10 +88,6 @@ #define USBH_ENABLE_CE (1<<3) #define USBH_ENABLE_RD (1<<4) -//QYL-2008-03-07 -#define STATE_OTHER 0x02 -#define STATE_UNKNOW 0x03 -#define STATE_DEALED_WITH 0x04 #ifdef LITTLEENDIAN #define USBH_ENABLE_INIT (USBH_ENABLE_CE | USBH_ENABLE_E | USBH_ENABLE_C) @@ -135,9 +127,6 @@ #define MAX_OHCI_C 4 /*In most case it is enough */ ohci_t *usb_ohci_dev[MAX_OHCI_C]; -/* urb_priv */ -urb_priv_t urb_priv; -urb_priv_t iurb_priv; /* RHSC flag */ int got_rhsc; /* device which was disconnected */ @@ -150,17 +139,6 @@ urb_priv_t ohci_urb[OHCI_MAX_USBDEVICES][OHCI_MAX_ENDPOINTS_PER_DEVICE]; extern struct usb_device usb_dev[]; extern int dev_index; -//QYL-2008-03-07 -u_int32_t bOhciInited = FALSE; -u_int32_t bCommonMsgSubmit = STATE_UNKNOW; -u_int32_t hcCount = 100; - -u_int32_t USBKBDEXIST = STATE_UNKNOW; - -//QYL-2008-03-07 -u_int32_t gHIDBeforeMass = STATE_UNKNOW; -u_int32_t gPipeIntCorrupt = TRUE; - /* * Hook to initialize hostcontroller */ @@ -174,11 +152,6 @@ static void ohci_device_notify(struct usb_device *dev, int port); int usb_lowlevel_init(ohci_t *ohci); -u_int32_t usb_kbd_exist(ohci_t *pohci); -#if 1 -ohci_t *myohci; -#endif - int ohci_debug = 0; struct usb_ops ohci_usb_op = { @@ -346,7 +319,7 @@ unsigned long sm501_set_clock(int clksrc, unsigned long req_freq) void sm502_mem_init(struct ohci *ohci, bus_addr_t base, bus_addr_t size) { - struct pci_attach_args *pa = ohci->pa; + struct pci_attach_args *pa = &ohci->pa; bus_space_tag_t memt= pa->pa_memt; u32 value; @@ -459,7 +432,7 @@ static int ohci_match(struct device *parent, void *match, void *aux) #ifdef CONFIG_SM502_USB_HCD char *no502; #endif - + if(PCI_CLASS(pa->pa_class) == PCI_CLASS_SERIALBUS && PCI_SUBCLASS(pa->pa_class) == PCI_SUBCLASS_SERIALBUS_USB){ if(((pa->pa_class >>8) & 0xff) == 0x10){ @@ -524,7 +497,7 @@ static void ohci_attach(struct device *parent, struct device *self, void *aux) bus_addr_t memsize2; #endif - /* or we just return false in the match function */ + /* Or we just return false in the match function */ if(ohci_dev_index >= MAX_OHCI_C) { printf("Exceed max controller limits\n"); return; @@ -532,8 +505,9 @@ static void ohci_attach(struct device *parent, struct device *self, void *aux) #ifdef USB_OHCI_NO_ROM if(PCI_VENDOR(pa->pa_id) == 0x1033){ val = pci_conf_read(ohci->sc_pc, pa->pa_tag, 0xe0); - pci_conf_write(ohci->sc_pc, pa->pa_tag, 0xe0, (val & ~0x7) | 0x4); - pci_conf_write(ohci->sc_pc, pa->pa_tag, 0xe4, (1<<5)); + pci_conf_write(ohci->sc_pc, pa->pa_tag, 0xe0, (val & ~0x3) | 0x3); + //pci_conf_write(ohci->sc_pc, pa->pa_tag, 0xe0, (val & ~0x7) | 0x4); + //pci_conf_write(ohci->sc_pc, pa->pa_tag, 0xe4, (1<<5)); } #endif ohci->pa = *pa; @@ -549,8 +523,50 @@ static void ohci_attach(struct device *parent, struct device *self, void *aux) } #endif - if(pa->pa_device == 15 && pa->pa_function == 0) +#ifdef LMDEXXON +#define USB_MASK_WEBCAM 0x01 +#define USB_MASK_SD 0x02 + if(pa->pa_device == 15 && pa->pa_function == 0) { ohci->hc.notify = ohci_device_notify; + //ohci->hc.port_mask = 0x02; /*ht keyboard*/ + } + + if(pa->pa_device == 17) { + unsigned char *envstr; + + /*not probe webcam and sd-reader*/ + ohci->hc.port_mask = USB_MASK_WEBCAM | USB_MASK_SD; + if((envstr = getenv("webcam"))&&!strcmp("yes", envstr)) + ohci->hc.port_mask &= ~USB_MASK_WEBCAM; + if((envstr = getenv("sdc"))&&!strcmp("yes",envstr)) + ohci->hc.port_mask &= ~USB_MASK_SD; + } +#endif + +#ifdef LOONGSON2F_7INCH + +#define PCI_DEVICE_CS5536_ID 14 +#define PCI_DEVICE_UPD710102_ID 9 +#define USB_MASK_PORT0 (1 << 0) +#define USB_MASK_PORT3 (1 << 3) + if(pa->pa_device == PCI_DEVICE_UPD710102_ID){ + /*not probe webcam */ + char * envstr; + ohci->hc.port_mask = USB_MASK_PORT0; + if((envstr = getenv("webcam"))&&!strcmp("yes", envstr)){ + ohci->hc.port_mask &= ~USB_MASK_PORT0; + } + } + if(pa->pa_device == PCI_DEVICE_CS5536_ID){ + /*no probe of sd-reader as default */ + char *envstr; + ohci->hc.port_mask = USB_MASK_PORT0; + if((envstr = getenv("sdc"))&&!strcmp("yes", envstr)){ + ohci->hc.port_mask &= ~USB_MASK_PORT0; + } + ohci->hc.port_mask |= USB_MASK_PORT3; /*wifi*/ + } +#endif if(pci_mem_find(pc, pa->pa_tag, OHCI_PCI_MMBA, &membase, &memsize, &cachable)){ printf("Can not find mem space for ohci\n"); @@ -593,13 +609,6 @@ SM502_HC: ports.*/ usb_new_device(ohci->rdev); - bOhciInited = TRUE; - if ((USBKBDEXIST == STATE_UNKNOW) && usb_kbd_exist(ohci)) - { - gHIDBeforeMass = check_device_sequence(ohci); - USBKBDEXIST = TRUE; - //printf("**ohci_attach** usb kbd exist! gHIDBeforeMass:0x%x USBKBDEXIST:0x%x\n",gHIDBeforeMass,USBKBDEXIST); - } } #define NOTUSBIRQ -0x100 @@ -663,230 +672,6 @@ static void urb_free_priv (urb_priv_t * urb) } } -/*-------------------------------------------------------------------------*/ - -#ifdef DEBUG -static int sohci_get_current_frame_number (struct usb_device * dev); - -/* debug| print the main components of an URB - * small: 0) header + data packets 1) just header */ - -static void pkt_print (struct usb_device * dev, unsigned long pipe, void * buffer, - int transfer_len, struct devrequest * setup, char * str, int small) -{ - urb_priv_t * purb = &urb_priv; - - dbg("%s URB:[%4x] dev:%2d,ep:%2d-%c,type:%s,len:%d/%d stat:%#lx\n", - str, - sohci_get_current_frame_number (dev), - usb_pipedevice (pipe), - usb_pipeendpoint (pipe), - usb_pipeout (pipe)? 'O': 'I', - usb_pipetype (pipe) < 2? (usb_pipeint (pipe)? "INTR": "ISOC"): - (usb_pipecontrol (pipe)? "CTRL": "BULK"), - purb->actual_length, - transfer_len, dev->status); -#if OHCI_VERBOSE_DEBUG == 1 - if (!small) { - int i, len; - - if (usb_pipecontrol (pipe)) { - printf (__FILE__ ": cmd(8):"); - for (i = 0; i < 8 ; i++) - printf (" %02x", ((u8 *) setup) [i]); - printf ("\n"); - } - if (transfer_len > 0 && buffer) { - printf (__FILE__ ": data(%d/%d):", - purb->actual_length, - transfer_len); - len = usb_pipeout (pipe)? - transfer_len: purb->actual_length; - for (i = 0; i < 16 && i < len; i++) - printf (" %02x", ((u8 *) buffer) [i]); - printf ("%s\n", i < len? "...": ""); - } - } -#endif -} - -/* just for debugging; prints non-empty branches of the int ed tree inclusive iso eds*/ -void ep_print_int_eds (ohci_t *ohci, char * str) { - int i, j; - u32 * ed_p; - for (i= 0; i < 32; i++) { - j = 5; - ed_p = &(ohci->hcca->int_table [i]); - if (*ed_p == 0) - continue; - printf (__FILE__ ": %s branch int %2d(%2x):", str, i, i); - while (*ed_p != 0 && j--) { - ed_t *ed = (ed_t *)m32_swap(ed_p); - printf (" ed: %4x;", ed->hwINFO); - ed_p = &ed->hwNextED; - } - printf ("\n"); - } -} - -static void ohci_dump_intr_mask (char *label, u32 mask) -{ - dbg ("%s: 0x%08x%s%s%s%s%s%s%s%s%s", - label, - mask, - (mask & OHCI_INTR_MIE) ? " MIE" : "", - (mask & OHCI_INTR_OC) ? " OC" : "", - (mask & OHCI_INTR_RHSC) ? " RHSC" : "", - (mask & OHCI_INTR_FNO) ? " FNO" : "", - (mask & OHCI_INTR_UE) ? " UE" : "", - (mask & OHCI_INTR_RD) ? " RD" : "", - (mask & OHCI_INTR_SF) ? " SF" : "", - (mask & OHCI_INTR_WDH) ? " WDH" : "", - (mask & OHCI_INTR_SO) ? " SO" : "" - ); -} - -static void maybe_print_eds (char *label, u32 value) -{ - ed_t *edp = (ed_t *)value; - - if (value) { - dbg ("%s %08x", label, value); - dbg ("%08x", edp->hwINFO); - dbg ("%08x", edp->hwTailP); - dbg ("%08x", edp->hwHeadP); - dbg ("%08x", edp->hwNextED); - } -} - -static char * hcfs2string (int state) -{ - switch (state) { - case OHCI_USB_RESET: return "reset"; - case OHCI_USB_RESUME: return "resume"; - case OHCI_USB_OPER: return "operational"; - case OHCI_USB_SUSPEND: return "suspend"; - } - return "?"; -} - -/* dump control and status registers */ -static void ohci_dump_status (ohci_t *controller) -{ - struct ohci_regs *regs = controller->regs; - u32 temp; - - temp = readl (®s->revision) & 0xff; - if (temp != 0x10) - dbg ("spec %d.%d", (temp >> 4), (temp & 0x0f)); - - temp = readl (®s->control); - dbg ("control: 0x%08x%s%s%s HCFS=%s%s%s%s%s CBSR=%d", temp, - (temp & OHCI_CTRL_RWE) ? " RWE" : "", - (temp & OHCI_CTRL_RWC) ? " RWC" : "", - (temp & OHCI_CTRL_IR) ? " IR" : "", - hcfs2string (temp & OHCI_CTRL_HCFS), - (temp & OHCI_CTRL_BLE) ? " BLE" : "", - (temp & OHCI_CTRL_CLE) ? " CLE" : "", - (temp & OHCI_CTRL_IE) ? " IE" : "", - (temp & OHCI_CTRL_PLE) ? " PLE" : "", - temp & OHCI_CTRL_CBSR - ); - - temp = readl (®s->cmdstatus); - dbg ("cmdstatus: 0x%08x SOC=%d%s%s%s%s", temp, - (temp & OHCI_SOC) >> 16, - (temp & OHCI_OCR) ? " OCR" : "", - (temp & OHCI_BLF) ? " BLF" : "", - (temp & OHCI_CLF) ? " CLF" : "", - (temp & OHCI_HCR) ? " HCR" : "" - ); - - ohci_dump_intr_mask ("intrstatus", readl (®s->intrstatus)); - ohci_dump_intr_mask ("intrenable", readl (®s->intrenable)); - - maybe_print_eds ("ed_periodcurrent", readl (®s->ed_periodcurrent)); - - maybe_print_eds ("ed_controlhead", readl (®s->ed_controlhead)); - maybe_print_eds ("ed_controlcurrent", readl (®s->ed_controlcurrent)); - maybe_print_eds ("ed_bulkhead", readl (®s->ed_bulkhead)); - maybe_print_eds ("ed_bulkcurrent", readl (®s->ed_bulkcurrent)); - maybe_print_eds ("donehead", readl (®s->donehead)); -} - -static void ohci_dump_roothub (ohci_t *controller, int verbose) -{ - u32 temp, ndp, i; - - temp = roothub_a (controller); - ndp = (temp & RH_A_NDP); - - if (verbose) { - dbg ("roothub.a: %08x POTPGT=%d%s%s%s%s%s NDP=%d", temp, - ((temp & RH_A_POTPGT) >> 24) & 0xff, - (temp & RH_A_NOCP) ? " NOCP" : "", - (temp & RH_A_OCPM) ? " OCPM" : "", - (temp & RH_A_DT) ? " DT" : "", - (temp & RH_A_NPS) ? " NPS" : "", - (temp & RH_A_PSM) ? " PSM" : "", - ndp - ); - temp = roothub_b (controller); - dbg ("roothub.b: %08x PPCM=%04x DR=%04x", - temp, - (temp & RH_B_PPCM) >> 16, - (temp & RH_B_DR) - ); - temp = roothub_status (controller); - dbg ("roothub.status: %08x%s%s%s%s%s%s", - temp, - (temp & RH_HS_CRWE) ? " CRWE" : "", - (temp & RH_HS_OCIC) ? " OCIC" : "", - (temp & RH_HS_LPSC) ? " LPSC" : "", - (temp & RH_HS_DRWE) ? " DRWE" : "", - (temp & RH_HS_OCI) ? " OCI" : "", - (temp & RH_HS_LPS) ? " LPS" : "" - ); - } - - for (i = 0; i < ndp; i++) { - temp = roothub_portstatus (controller, i); - dbg ("roothub.portstatus [%d] = 0x%08x%s%s%s%s%s%s%s%s%s%s%s%s", - i, - temp, - (temp & RH_PS_PRSC) ? " PRSC" : "", - (temp & RH_PS_OCIC) ? " OCIC" : "", - (temp & RH_PS_PSSC) ? " PSSC" : "", - (temp & RH_PS_PESC) ? " PESC" : "", - (temp & RH_PS_CSC) ? " CSC" : "", - - (temp & RH_PS_LSDA) ? " LSDA" : "", - (temp & RH_PS_PPS) ? " PPS" : "", - (temp & RH_PS_PRS) ? " PRS" : "", - (temp & RH_PS_POCI) ? " POCI" : "", - (temp & RH_PS_PSS) ? " PSS" : "", - - (temp & RH_PS_PES) ? " PES" : "", - (temp & RH_PS_CCS) ? " CCS" : "" - ); - } -} - -static void ohci_dump (ohci_t *controller, int verbose) -{ - dbg ("OHCI controller usb-%s state", controller->slot_name); - - /* dumps some of the state we know about */ - ohci_dump_status (controller); - if (verbose) - ep_print_int_eds (controller, "hcca"); - dbg ("hcca frame #%04x", controller->hcca->frame_no); - ohci_dump_roothub (controller, 1); -} - - -#endif /* DEBUG */ - /*-------------------------------------------------------------------------* * Interface functions (URB) *-------------------------------------------------------------------------*/ @@ -960,8 +745,6 @@ int sohci_submit_job(struct usb_device *dev, unsigned long pipe, void *buffer, return -1; } - //QYL-2008-03-07 - //purb_priv = &urb_priv; for(dev_num = 0; dev_num < USB_MAX_DEVICE; dev_num++) { if (dev == &usb_dev[dev_num]) @@ -1437,8 +1220,6 @@ static ed_t * ep_add_ed (struct usb_device *usb_dev, unsigned long pipe) //QYL-2008-03-07 u_int32_t cpued_num = 0; - /*ed = ed_ret = &ohci_dev->cpu_ed[(usb_pipeendpoint (pipe) << 1) | - (usb_pipecontrol (pipe)? 0: usb_pipeout (pipe))];*/ cpued_num = ((usb_pipedevice(pipe)&0x3)<<3)|((usb_pipeendpoint(pipe)&0x3)<<1)|(usb_pipein(pipe)); ed = ed_ret = &ohci_dev->cpu_ed[cpued_num]; @@ -1764,9 +1545,7 @@ static void td_submit_job (struct usb_device *dev, unsigned long pipe, void static void dl_transfer_length(td_t * td) { u32 tdINFO, tdBE, tdCBP; - //urb_priv_t *lurb_priv = &urb_priv; - urb_priv_t *lurb_priv = NULL;//QYL-2008-03-07 - ohci_t *ohci = td->usb_dev->hc_private; + urb_priv_t *lurb_priv = NULL; int length = 0; //QYL-2008-03-07 @@ -1932,9 +1711,6 @@ static td_t * dl_reverse_done_list (ohci_t *ohci) td_list->hwINFO |= TD_DEL; if (TD_CC_GET (m32_swap (td_list->hwINFO))) { - /*Some errors occured*/ - //QYL-2008-03-07 - //lurb_priv = &urb_priv; p_dev = td_list->usb_dev; for(dev_num = 0; dev_num < USB_MAX_DEVICE; dev_num++) { @@ -1947,8 +1723,11 @@ static td_t * dl_reverse_done_list (ohci_t *ohci) ed_num = (p_ed->hwINFO & 0x780) >> 7; lurb_priv = &ohci_urb[dev_num][ed_num]; +#if 0 + //FIXME Error Handling printf(" USB-error/status: %x : %p\n", TD_CC_GET (m32_swap (td_list->hwINFO)), td_list); +#endif if (td_list->ed->hwHeadP & m32_swap (0x1)) { //ED halted if (lurb_priv && ((td_list->index + 1) < lurb_priv->length)) { td_list->ed->hwHeadP = @@ -1993,10 +1772,8 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list) int stat = 0; struct usb_device *dev = NULL; /* urb_t *urb; */ - urb_priv_t *lurb_priv = NULL;//&urb_priv; + urb_priv_t *lurb_priv = NULL; u32 tdINFO, edHeadP, edTailP; - - //QYL-2008-03-07 u_int32_t dev_num,ed_num; struct usb_device *p_dev = NULL; ed_t *p_ed = NULL; @@ -2048,7 +1825,10 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list) /* error code of transfer */ cc = TD_CC_GET (tdINFO); if (cc != 0) { +#if 0 + //FIXME Error Handling err("ConditionCode %x/%x", cc, td_list); +#endif stat = cc_to_error[cc]; } @@ -2065,11 +1845,8 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list) td_list = td_list_next; } - - if (NULL != pInt_urb_priv) { - ohci->g_pInt_dev = pInt_dev; - ohci->g_pInt_ed = pInt_ed; - ohci->g_pInt_urb_priv = pInt_urb_priv; + + if (NULL != pInt_urb_priv) { if (pInt_dev && pInt_dev->irq_handle) { pInt_dev->irq_status = 0; pInt_dev->irq_act_len = pInt_urb_priv->actual_length; @@ -2081,6 +1858,7 @@ static int dl_done_list (ohci_t *ohci, td_t *td_list) pInt_ed->hwINFO = pInt_ed->oINFO; ep_link(ohci, pInt_ed); td_submit_job(pInt_ed->usb_dev, pInt_urb_priv->pipe, pInt_urb_priv->trans_buffer, pInt_urb_priv->trans_length, pInt_urb_priv->setup_buffer, pInt_urb_priv, pInt_ed->int_interval); + pInt_urb_priv = NULL; } return stat; } @@ -2111,10 +1889,7 @@ static int dl_td_done_list (ohci_t *ohci, td_t *td_list) while (td_list) { td_list_next = td_list->next_dl_td; - //printf("td_list:%x\n",td_list); - //QYL-2008-03-07 - //lurb_priv = &urb_priv; p_dev = td_list->usb_dev; for(dev_num = 0; dev_num < USB_MAX_DEVICE; dev_num++) { @@ -2123,6 +1898,10 @@ static int dl_td_done_list (ohci_t *ohci, td_t *td_list) break; } } + if(dev_num == USB_MAX_DEVICE) { + printf("Error not found device (%08x),%08x\n", td_list, p_dev); + break; + } p_ed = td_list->ed; ed_num = (p_ed->hwINFO & 0x780) >> 7; lurb_priv = &ohci_urb[dev_num][ed_num]; @@ -2162,16 +1941,22 @@ static int dl_td_done_list (ohci_t *ohci, td_t *td_list) ep_unlink (ohci, ed); } } - dev->status = stat; // FIXME; + dev->status = stat; // FIXME, the transfer complete? td_list = td_list_next; } - if ((NULL != pInt_urb_priv) && (bOhciInited == FALSE)) { - ohci->g_pInt_dev = pInt_dev; - ohci->g_pInt_ed = pInt_ed; - ohci->g_pInt_urb_priv = pInt_urb_priv; - } + if ((NULL != pInt_urb_priv)) { /* FIXME */ + int i; + for (i=0; i< MAX_INTS; i++) { + if(ohci->g_pInt_dev[i] == NULL) { + ohci->g_pInt_dev[i] = pInt_dev; + ohci->g_pInt_ed[i] = pInt_ed; + ohci->g_pInt_urb_priv[i] = pInt_urb_priv; + break; + } + } + } return stat; } @@ -2556,7 +2341,6 @@ static int ohci_submit_rh_msg(struct usb_device *dev, unsigned long pipe, #ifdef DEBUG if (transfer_len) urb_priv.actual_length = transfer_len; - pkt_print(dev, pipe, buffer, transfer_len, cmd, "RET(rh)", usb_pipein(pipe)); #else wait_ms(1); #endif @@ -2615,13 +2399,12 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer, { int stat = 0; int maxsize = usb_maxpacket(dev, pipe); - int timeout; + int timeout, i; struct ohci *gohci = dev->hc_private; //QYL-2008-03-07 u_int32_t dev_num,ed_num; urb_priv_t *lurb_priv = NULL; - static u_int32_t dev_count = 0; /* device pulled? Shortcut the action. */ if (devgone == dev) { @@ -2635,6 +2418,13 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer, return -1; } + if(pipe != PIPE_INTERRUPT) { + gohci->transfer_lock ++; + + gohci->hc_control &= ~OHCI_CTRL_PLE; + writel(gohci->hc_control, &gohci->regs->control); + } + if (sohci_submit_job(dev, pipe, buffer, transfer_len, setup, interval) < 0) { err("sohci_submit_job failed"); return -1; @@ -2645,7 +2435,7 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer, if (usb_pipetype (pipe) == PIPE_BULK) timeout = BULK_TO; else - timeout = 200; + timeout = 2000; timeout *= 40; @@ -2671,27 +2461,51 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer, } #else - //QYL-2008-03-07 - if ((bOhciInited == TRUE) && (usb_pipetype(pipe) == PIPE_BULK)) - { - hcCount++; - bCommonMsgSubmit = TRUE; - } - - if ((bOhciInited == FALSE) - ||((bOhciInited == TRUE) &&(usb_pipetype(pipe) != PIPE_INTERRUPT))) - { + while(--timeout > 0) { + if(!(dev->status & USB_ST_NOT_PROC)){ + break; + } + delay(200); hc_check_ohci_controller(gohci); - dev_count++; - while(--timeout > 0){ - if(!(dev->status & USB_ST_NOT_PROC)){ - break; - } - delay(200); - hc_check_ohci_controller(gohci); + } + + if(pipe != PIPE_INTERRUPT) { + gohci->transfer_lock --; + gohci->hc_control |= OHCI_CTRL_PLE; + writel(gohci->hc_control, &gohci->regs->control); + } + + for(i=0; i< MAX_INTS; i++) { + struct usb_device *pInt_dev = NULL; + urb_priv_t * pInt_urb_priv = NULL; + ed_t * pInt_ed = NULL; + + pInt_dev = gohci->g_pInt_dev[i]; + pInt_urb_priv = gohci->g_pInt_urb_priv[i]; + pInt_ed = gohci->g_pInt_ed[i]; + + if(pInt_dev == NULL || pInt_urb_priv == NULL|| pInt_ed == NULL) + continue; + + if (pInt_dev->irq_handle) { + pInt_dev->irq_status = 0; + pInt_dev->irq_act_len = pInt_urb_priv->actual_length; + pInt_dev->irq_handle(pInt_dev); } + + pInt_urb_priv->actual_length = 0; + pInt_dev->irq_act_len = 0; + pInt_ed->hwINFO = pInt_ed->oINFO; + ep_link(gohci, pInt_ed); + td_submit_job(pInt_ed->usb_dev, pInt_urb_priv->pipe, pInt_urb_priv->trans_buffer, pInt_urb_priv->trans_length, (struct devrequest *)pInt_urb_priv->setup_buffer, pInt_urb_priv, pInt_ed->int_interval); + + gohci->g_pInt_dev[i] = NULL; + gohci->g_pInt_urb_priv[i] = NULL; + gohci->g_pInt_ed[i] = NULL; + } + if (timeout == 0) printf("USB timeout dev:0x%x\n",(u_int32_t)dev); @@ -2727,12 +2541,12 @@ int submit_common_msg(struct usb_device *dev, unsigned long pipe, void *buffer, ed_num = usb_pipeendpoint(pipe); lurb_priv = &ohci_urb[dev_num][ed_num]; - if (usb_pipetype(pipe) != PIPE_INTERRUPT) { + if (usb_pipetype(pipe) != PIPE_INTERRUPT) { /*FIXME, might not done bulk*/ dev->status = stat; dev->act_len = transfer_len; /* free TDs in urb_priv */ - //urb_free_priv (&urb_priv);QYL-2008-03-07 urb_free_priv(lurb_priv); + memset(lurb_priv, 0, sizeof(*lurb_priv)); } return 0; @@ -2798,10 +2612,7 @@ static int ohci_submit_control_msg(struct usb_device *dev, unsigned long pipe, struct ohci *gohci = dev->hc_private; if(ohci_debug)printf("submit_control_msg(%d) %x/%d\n", (pipe>>8)&0x7f, buffer, transfer_len); -#if 0 - urb_priv.actual_length = 0; - pkt_print(dev, pipe, buffer, transfer_len, setup, "SUB", usb_pipein(pipe)); -#else +#if 1 wait_ms(1); #endif if (!maxsize) { @@ -2844,6 +2655,7 @@ static int ohci_submit_int_msg(struct usb_device *dev, unsigned long pipe, void { int s; + if(ohci_debug)printf("submit int(%08x)\n", dev); s = submit_common_msg(dev, pipe, buffer, transfer_len, NULL, interval); return s; } @@ -2970,7 +2782,7 @@ static int hc_start (ohci_t * ohci) writel (RH_HS_LPSC, &ohci->regs->roothub.status); #endif /* OHCI_USE_NPS */ -#define mdelay(n) ({unsigned long msec=(n); while (msec--) udelay(1000);}) +#define mdelay(n) do {unsigned long msec=(n); while (msec--) udelay(1000);} while(0) /* POTPGT delay is bits 24-31, in 2 ms units. */ mdelay ((roothub_a (ohci) >> 23) & 0x1fe); @@ -3012,13 +2824,8 @@ static int hc_interrupt (void *hc_data) struct usb_device *p_dev = NULL; ed_t *p_ed = NULL; - //Felix-2008-05-05 - static u_int32_t ArouseCount = 0; - - if ((bOhciInited == TRUE) && (bCommonMsgSubmit == TRUE)) - { - hcCount--; - } + if(ohci->transfer_lock) + return stat; if ((ohci->hcca->done_head != 0) && !(m32_swap (ohci->hcca->done_head) & 0x01)) { @@ -3061,7 +2868,7 @@ static int hc_interrupt (void *hc_data) * This is potentially dangerous because it assumes * that only one device is ever plugged in! */ - printf("**hc_interrupt 2008-03-07** device disconnected\n");//QYL-2008-03-07 + //printf("**hc_interrupt 2008-03-07** device disconnected\n");//QYL-2008-03-07 } } @@ -3099,15 +2906,10 @@ static int hc_interrupt (void *hc_data) td = (td_t *)CACHED_TO_UNCACHED(ohci->hcca->done_head & ~0x1f); } } - if (td == NULL) + + if (td == NULL) { printf("Bad td in donehead\n"); - else if ((td != NULL) && (td->ed != NULL) ) - { - //QYL-2008-03-07 - if ((bOhciInited == TRUE) && (gHIDBeforeMass == TRUE) && (gPipeIntCorrupt == TRUE)) - { - gPipeIntCorrupt = FALSE; - } + } else if ((td != NULL) && (td->ed != NULL) ) { p_dev = td->usb_dev; for(dev_num = 0; dev_num < USB_MAX_DEVICE; dev_num++) { @@ -3120,15 +2922,11 @@ static int hc_interrupt (void *hc_data) ed_num = (p_ed->hwINFO & 0x780) >> 7; lurb_priv = &ohci_urb[dev_num][ed_num]; - //Felix-2008-05-05 - ArouseCount = 0; - if (td->index != lurb_priv->length -1){ - stat = dl_done_list (ohci, dl_reverse_done_list (ohci)); - printf("td index=%x/%x\n", td->index, lurb_priv->length); - } - else { - stat = dl_done_list (ohci, dl_reverse_done_list (ohci)); + stat = dl_done_list (ohci, dl_reverse_done_list (ohci)); + printf("td index=%x/%x\n", td->index, lurb_priv->length); + } else { + stat = dl_done_list (ohci, dl_reverse_done_list (ohci)); } } @@ -3152,36 +2950,8 @@ static int hc_interrupt (void *hc_data) } writel (ints, ®s->intrstatus); - - -#if 0 - writel (ints & ~OHCI_INTR_WDH , ®s->intrstatus); - if(check_donechead == 1){ - hc_td = (td_t *)(readl(®s->donehead)); - printf("hc_td:%x\n", hc_td); - if(hc_td){ - hc_td = (td_t *)CACHED_TO_UNCACHED(hc_td); - printf("index=%x/%x\n", hc_td->index, lurb_priv->length); - //if(hc_td->index == lurb_priv->length -1) //not safe - // writel (ints | OHCI_INTR_WDH, ®s->intrstatus); - } - } - - if(check_donechead == 2) - writel (OHCI_INTR_WDH, ®s->intrstatus); -#endif (void)readl(®s->control); - if (++ArouseCount == 400) - { - arouse_usb_int_pipe(ohci); - ArouseCount = 0; - } - if (bOhciInited && (gHIDBeforeMass == TRUE) && (gPipeIntCorrupt == TRUE)) - { - arouse_usb_int_pipe(ohci); - gHIDBeforeMass = STATE_DEALED_WITH; - } return stat; } @@ -3219,7 +2989,6 @@ static void hc_release_ohci (ohci_t *ohci) * not aligned or OHCI initialization error. * 0 : indicates that initialization finished successfully. *===========================================================================*/ -static char ohci_inited = 0; int usb_lowlevel_init(ohci_t *gohci) { @@ -3398,7 +3167,6 @@ int usb_lowlevel_init(ohci_t *gohci) wait_ms(1); #endif printf("OHCI %x initialized ok\n", gohci); - ohci_inited = 1; return 0; errout: @@ -3426,8 +3194,6 @@ int usb_lowlevel_stop(void *hc_data) /* this gets called really early - before the controller has */ /* even been initialized! */ struct ohci *ohci = hc_data; - if (!ohci_inited) - return 0; /* TODO release any interrupts, etc. */ /* call hc_release_ohci() here ? */ hc_reset (ohci); @@ -3445,7 +3211,7 @@ void usb_ohci_stop_one(ohci_t *ohci) (void) readl (&ohci->regs->cmdstatus); cmd = pci_conf_read(ohci->sc_pc, ohci->pa.pa_tag, 0x04); - pci_conf_write(ohci->sc_pc, ohci->pa.pa_tag, 0x04, (cmd & ~0x4)); + pci_conf_write(ohci->sc_pc, ohci->pa.pa_tag, 0x04, (cmd & ~0x7)); } void usb_ohci_stop() @@ -3455,6 +3221,7 @@ void usb_ohci_stop() for(i=0; i< MAX_OHCI_C && usb_ohci_dev[i]; i++) usb_ohci_stop_one(usb_ohci_dev[i]); } + #ifdef DEBUG #include extern unsigned long strtoul(const char *nptr,char **endptr,int base); @@ -3530,12 +3297,11 @@ static int hc_check_ohci_controller (void *hc_data) int ints; int stat = NOTUSBIRQ; - //QYL-2008-01-29 u_int32_t dev_num, ed_num; struct usb_device *p_dev = NULL; ed_t *p_ed = NULL; - if ((ohci->hcca->done_head != 0) && + if ((ohci->hcca->done_head != 0) && !(m32_swap (ohci->hcca->done_head) & 0x01)) { ints = OHCI_INTR_WDH; #ifdef CONFIG_SM502_USB_HCD @@ -3598,9 +3364,9 @@ static int hc_check_ohci_controller (void *hc_data) return -1; } - if (ints & OHCI_INTR_WDH) { + if (ints & OHCI_INTR_WDH) { - if (td == NULL){ + if (td == NULL) { #ifdef CONFIG_SM502_USB_HCD if(ohci->flags & 0x80) { @@ -3613,12 +3379,10 @@ static int hc_check_ohci_controller (void *hc_data) } } - if (((td != NULL)&&(bOhciInited == FALSE))|| - ((td != NULL)&&(bOhciInited == TRUE)&&(td->ed != NULL)))//&&(td->ed->type != PIPE_INTERRUPT))) - - { + if ((td != NULL)&&(td->ed != NULL)) { //&&(td->ed->type != PIPE_INTERRUPT))) writel (OHCI_INTR_WDH, ®s->intrdisable); p_dev = td->usb_dev; + for(dev_num = 0; dev_num < USB_MAX_DEVICE; dev_num++) { if (p_dev == &usb_dev[dev_num]) @@ -3630,10 +3394,10 @@ static int hc_check_ohci_controller (void *hc_data) ed_num = (p_ed->hwINFO & 0x780) >> 7;//See OHCI1.1 spec Page 17 Endpoint Descriptor Field Definitions lurb_priv= &ohci_urb[dev_num][ed_num]; - if (td->index != lurb_priv->length -1){ + if (td->index != lurb_priv->length -1) { stat = dl_td_done_list (ohci, dl_reverse_done_list (ohci)); - printf("**hc_check_ohci_controller** td index=%x/%x\n", td->index, lurb_priv->length); - } else { + printf("**hc_check** td index=%x/%x, p_dev %x\n", td->index, lurb_priv->length, p_dev); + } else { stat = dl_td_done_list (ohci, dl_reverse_done_list (ohci)); } writel (OHCI_INTR_WDH, ®s->intrenable); @@ -3662,120 +3426,7 @@ static int hc_check_ohci_controller (void *hc_data) static void ohci_device_notify(struct usb_device *dev, int port) { - if(port == 1 && dev->match ){ + if(port == 2 && dev->match ){ strcpy(((struct device *)dev->match)->dv_xname, "usbg0"); } } - -//QYL-2008-03-07 -/*=========================================================================== -* -*FUNTION: arouse_usb_int_pipe -* -*DESCRIPTION: In some cases,PIPE_INTERRUPT TDs would be corrupted by other TDs, -* so this function is used to sumbit the PIPE_INTERRUPT TDs again -* to arouse the Interrupt Pipe(for example,to make the USB keypad -* work again!). -*PARAMETERS: -* none -* -*RETURN VALUE: none -* -*===========================================================================*/ -void arouse_usb_int_pipe(ohci_t *ohci) -{ - if (!ohci->g_pInt_dev || !ohci->g_pInt_urb_priv || !ohci->g_pInt_ed ) - { - return; - } - if (ohci->g_pInt_dev && ohci->g_pInt_dev->irq_handle) { - ohci->g_pInt_dev->irq_status = 0; - ohci->g_pInt_dev->irq_act_len = 8; - ohci->g_pInt_dev->irq_handle(ohci->g_pInt_dev); - } - - ohci->g_pInt_urb_priv->actual_length = 0; - ohci->g_pInt_dev->irq_act_len = 0; - ohci->g_pInt_ed->hwINFO = ohci->g_pInt_ed->oINFO; - ep_link(ohci, ohci->g_pInt_ed); - //Ready the next job,espicial for PIPE_INTERRUPT!QYL-2008-02-22 - td_submit_job(ohci->g_pInt_ed->usb_dev, ohci->g_pInt_urb_priv->pipe, ohci->g_pInt_urb_priv->trans_buffer, ohci->g_pInt_urb_priv->trans_length,(struct devrequest *)ohci->g_pInt_urb_priv->setup_buffer, ohci->g_pInt_urb_priv, ohci->g_pInt_ed->int_interval); - -} - -/*=========================================================================== -* -*FUNTION: check_device_sequence -* -*DESCRIPTION: This function is used to check the sequence of HID Device(usb keypad) -* and Mass Storage Device. -*PARAMETERS: -* none. -* -*RETURN VALUE: HIDBeforeMass -* 0 : indicates that Mass Storage Device is enumerated before -* HID Device(usb keypad). -* 1 : indicates that HID device(usb keypad) is enumerated before -* Mass Storage Device -* -*===========================================================================*/ -u_int32_t check_device_sequence(ohci_t *pohci) -{ - - u_int32_t HIDBeforeMass = STATE_OTHER; - u_int32_t i = 0; - struct usb_interface_descriptor *piface; - struct usb_device *pdev; - - for(i = 0; i < USB_MAX_DEVICE; i++) - { - pdev = pohci->rdev->children[i]; - if (NULL == pdev) - { - break; - } - piface = &pdev->config.if_desc[0]; - if((piface->bInterfaceClass == USB_CLASS_HID) - && (piface->bInterfaceSubClass == USB_SUB_HID_BOOT) - && (piface->bInterfaceProtocol == USB_PROT_HID_KEYBOARD))//Device HID(keypad) - { - HIDBeforeMass = FALSE; - } - if (piface->bInterfaceClass == USB_CLASS_MASS_STORAGE)//Device Mass storage - { - HIDBeforeMass = TRUE; - } - } - return HIDBeforeMass; -} - - - -/* - * This is a hack to usb, best to avoid do this ---yanhua - */ -u_int32_t usb_kbd_exist(ohci_t *pohci) -{ - struct usb_interface_descriptor *piface; - struct usb_device *pdev = NULL; - int i = 0; - - for(i = 0; i < USB_MAX_DEVICE; i++) - { - pdev = pohci->rdev->children[i]; - if (NULL == pdev) - { - break; - } - piface = &pdev->config.if_desc[0]; - if((piface->bInterfaceClass == USB_CLASS_HID) - && (piface->bInterfaceSubClass == USB_SUB_HID_BOOT) - && (piface->bInterfaceProtocol == USB_PROT_HID_KEYBOARD))//Device HID(keypad) - { - myohci = pohci; - return TRUE; - } - } - - return FALSE; -} diff --git a/sys/dev/usb/usb-ohci.h b/sys/dev/usb/usb-ohci.h index 7f29ddf5..951fe5f4 100644 --- a/sys/dev/usb/usb-ohci.h +++ b/sys/dev/usb/usb-ohci.h @@ -396,14 +396,19 @@ typedef struct ohci { unsigned long free; td_t *gtd; - struct usb_device *g_pInt_dev; - urb_priv_t *g_pInt_urb_priv; - ed_t *g_pInt_ed; +#define MAX_INTS 5 + struct usb_device *g_pInt_dev[MAX_INTS]; + urb_priv_t *g_pInt_urb_priv[MAX_INTS]; + ed_t *g_pInt_ed[MAX_INTS]; + unsigned int transfer_lock; + +#ifdef CONFIG_SM502_USB_HCD /*only for sm502 usb only*/ #define MAX_SM502_BUFS 5 //This is sufficient void *sm502_bufs[MAX_SM502_BUFS]; int sm502_buf_use[MAX_SM502_BUFS]; +#endif } ohci_t; #define NUM_EDS 32 /* num of preallocated endpoint descriptors */ diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index 3019c941..8aa9c4bb 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -1787,12 +1787,8 @@ int usb_hub_configure(struct usb_device *dev) struct usb_hub_status *hubsts; int i; struct usb_hub_device *hub; - int port_mask = 0xff; - char *usb_port_mask; + struct usb_hc *hc = dev->hc_private; - if((usb_port_mask = getenv("usbmask"))) { - port_mask = strtoul(usb_port_mask, NULL, 16); - } /* "allocate" Hub device */ hub=usb_hub_allocate(); if(hub==NULL) @@ -1891,7 +1887,7 @@ int usb_hub_configure(struct usb_device *dev) struct usb_port_status portsts; unsigned short portstatus, portchange; - if(!(port_mask & (1 << i))) + if((hc->port_mask & (1 << i))) continue; if (usb_get_port_status(dev, i + 1, &portsts) < 0) { USB_HUB_PRINTF("get_port_status failed\n"); diff --git a/sys/dev/usb/usb.h b/sys/dev/usb/usb.h index 79caac1b..b8a8ea4f 100644 --- a/sys/dev/usb/usb.h +++ b/sys/dev/usb/usb.h @@ -433,6 +433,7 @@ struct usb_hc { struct usb_ops *uop; void (*notify)(struct usb_device *dev, int port); TAILQ_ENTRY(usb_hc) hc_list; + unsigned int port_mask; /*To mask some port when scanning*/ }; extern void delay(int ms); diff --git a/sys/dev/usb/usb_kbd.c b/sys/dev/usb/usb_kbd.c index 93823ef7..79c0e4c1 100644 --- a/sys/dev/usb/usb_kbd.c +++ b/sys/dev/usb/usb_kbd.c @@ -52,8 +52,8 @@ #include "usb.h" #include "devices.h" +/*#define USB_KBD_DEBUG to turn on debug*/ #undef USB_KBD_DEBUG -//#define USB_KBD_DEBUG /* * if overwrite_console returns 1, the stdin, stderr and stdout * are switched to the serial port, else the settings in the @@ -162,7 +162,6 @@ static unsigned char usb_kbd_numkey_shifted[] = { /* puts character in the queue and sets up the in and out pointer */ static void usb_kbd_put_queue(char data) { - //prom_printf("put queue,usb_in_pointer=%d\n",usb_in_pointer); if((usb_in_pointer+1)==USB_KBD_BUFFER_LEN) { if(usb_out_pointer==0) { return; /* buffer full */ @@ -186,6 +185,7 @@ static int usb_kbd_testc(void) else return(1); } + /* gets the character from the queue */ static int usb_kbd_getc(void) { @@ -231,11 +231,16 @@ void usb_kbd_poll(void) /* forward decleration */ static int usb_kbd_probe(struct usb_device *dev, unsigned int ifnum); +static int usb_mice_probe(struct usb_device *dev, unsigned int ifnum); struct usb_driver usb_kbd_driver = { .probe = usb_kbd_probe, }; +struct usb_driver usb_mice_driver = { + .probe = usb_mice_probe, +}; + /* search for keyboard and register it if found */ int drv_usb_kbd_init(void) { @@ -274,10 +279,6 @@ int usb_kbd_deregister(void) return 0; } -/************************************************************************** - * Low Level drivers - */ - /* set the LEDs. Since this is used in the irq routine, the control job is issued with a timeout of 0. This means, that the job is queued without waiting for job completion */ @@ -451,8 +452,10 @@ static int usb_kbd_irq(struct usb_device *dev) } if((new[k_index][2]>3) && (old[k_index][2]==new[k_index][2])) /* still pressed */ res|=usb_kbd_translate(new[k_index][2],new[k_index][0],2); +#if 0 if(res==1) usb_kbd_setled(dev); +#endif memcpy(&old[k_index][0],&new[k_index][0], 8); return 1; /* install IRQ Handler again */ @@ -509,15 +512,34 @@ static int usb_kbd_probe(struct usb_device *dev, unsigned int ifnum) return 1; } +/* probes the USB mice device*/ +static int usb_mice_probe(struct usb_device *dev, unsigned int ifnum) +{ + struct usb_interface_descriptor *iface; + struct usb_endpoint_descriptor *ep; + //int pipe,maxp; + + if (dev->descriptor.bNumConfigurations != 1) return 0; + iface = &dev->config.if_desc[ifnum]; + + if (iface->bInterfaceClass != 3) return 0; + if (iface->bInterfaceSubClass != 1) return 0; + if (iface->bInterfaceProtocol != 2) return 0; + if (iface->bNumEndpoints != 1) return 0; + + return 0; +} + static void init_kbd_driver(void) __attribute__((constructor)); -static void init_kbd_driver(void) +extern void usb_driver_register(struct usb_driver *driver); + +static void init_kbd_driver(void) { - usb_driver_register(&usb_kbd_driver); + usb_driver_register(&usb_kbd_driver); } - -#if 0 +#ifdef __not_used__ struct usb_hid_descriptor { unsigned char bLength; unsigned char bDescriptorType; /* 0x21 for HID */ diff --git a/sys/dev/usb/usb_storage.c b/sys/dev/usb/usb_storage.c index ac799c7a..54d4e30d 100644 --- a/sys/dev/usb/usb_storage.c +++ b/sys/dev/usb/usb_storage.c @@ -193,7 +193,8 @@ static struct us_data usb_stor[USB_MAX_STOR_DEV]; int usb_stor_get_info(struct usb_device *dev, struct us_data *us, block_dev_desc_t *dev_desc); int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,struct us_data *ss); -unsigned long usb_stor_read(int device, unsigned long blknr, unsigned long blkcnt, unsigned long *buffer); +static unsigned long +usb_stor_read(int device, unsigned long blknr, unsigned long blkcnt, unsigned long *buffer,unsigned char *cp); struct usb_device * usb_get_dev_index(int index); void uhci_show_temp_int_td(void); @@ -962,15 +963,18 @@ static int usb_read_10(ccb *srb,struct us_data *ss, unsigned long start, unsigne } -#define USB_MAX_READ_BLK 30 +#define USB_MAX_READ_BLK 16 extern int ohci_debug; -unsigned long usb_stor_read(int device, unsigned long blknr, unsigned long blkcnt, unsigned long *buffer) + +static unsigned long +usb_stor_read(int device, unsigned long blknr, unsigned long blkcnt, unsigned long *buffer, unsigned char *cp) { unsigned long start,blks, buf_addr; unsigned short smallblks; struct usb_device *dev; int retry,i; + int s; ccb *srb = usb_ccb; if (blkcnt == 0) @@ -1018,6 +1022,7 @@ retry_it: // usb_show_progress(); srb->datalen=usb_dev_desc[device].blksz * smallblks; srb->pdata=(unsigned char *)buf_addr; + s = splimp(); if(usb_read_10(srb,(struct us_data *)dev->privptr, start, smallblks)) { //USB_STOR_PRINTF("Read ERROR\n"); printf("Read ERROR\n"); @@ -1027,9 +1032,15 @@ retry_it: blkcnt-=blks; break; } + splx(s); start+=smallblks; blks-=smallblks; - buf_addr+=srb->datalen; + if(cp) { + /*use the temp buf, a copy is needed*/ + memcpy(cp, buf_addr, srb->datalen); + cp += srb->datalen; + }else + buf_addr+=srb->datalen; } while(blks!=0); USB_STOR_PRINTF("usb_read: end startblk %lx, blccnt %x buffer %lx\n",start,smallblks,buf_addr); usb_disable_asynch(0); /* asynch transfer allowed */ @@ -1150,7 +1161,7 @@ int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,struct us_data !ss->ep_in || !ss->ep_out || (ss->protocol == US_PR_CBI && ss->ep_int == 0)) { USB_STOR_PRINTF("Problems with device\n"); -// return 0; + return 0; } /* set class specific stuff */ /* We only handle certain protocols. Currently, these are @@ -1330,8 +1341,7 @@ void usb_strategy(struct buf *bp); int usb_read(dev_t dev, struct uio *uio, int ioflag); int usb_write(dev_t dev, struct uio *uio, int ioflag); -//static unsigned char bulkbuf[8096] __attribute__((section(".bss"),aligned(128))); -static unsigned char bulkbuf[110*1024] __attribute__((section("data"),aligned(4096))); +static unsigned char bulkbuf[24*1024] __attribute__((section("data"),aligned(256))); int usb_open(dev_t dev, int flag, int fmt, struct proc *p) { @@ -1390,13 +1400,10 @@ void usb_strategy(struct buf *bp) goto done; if(bp->b_flags & B_READ){ - if((unsigned long)bp->b_data & (d_secsize - 1)){ - ret = usb_stor_read(dev, blkno, blkcnt, (unsigned long *)bulkbuf); - memcpy(bp->b_data, bulkbuf, bp->b_bcount); - //ret = usb_stor_read(dev, blkno, 1, (unsigned long *)bulkbuf); - //memcpy(bp->b_data, bulkbuf,d_secsize-(unsigned )bp0->b_data & (d_secsize -1)); + if((unsigned long)bp->b_data & 0x7f){ + ret = usb_stor_read(dev, blkno, blkcnt, (unsigned long *)bulkbuf, bp->b_data); } else { - ret = usb_stor_read(dev, blkno, blkcnt, (unsigned long *)bp->b_data); + ret = usb_stor_read(dev, blkno, blkcnt, (unsigned long *)bp->b_data, NULL); } if(ret != blkcnt) bp->b_flags |= B_ERROR; From 8faa933f96f7e1a840f86644a3a7bcc99c9b7dcb Mon Sep 17 00:00:00 2001 From: root Date: Thu, 8 Jan 2009 16:18:21 +0800 Subject: [PATCH 4/7] add missing file,change flash. --- Makefile | 1 + Targets/Bonito2F7inch/conf/Bonito | 11 +- .../Bonito2F7inch/conf/files.Bonito2F7inch | 2 +- conf/GENERIC_ALL | 1 - pmon/cmds/password.c | 275 ++------ pmon/common/main.c | 70 +- pmon/dev/flash.c | 8 +- pmon/dev/flashdev.c | 3 + sys/dev/pci/e100.c | 16 + sys/dev/pci/em/if_em.c | 17 + sys/dev/pci/kb3310.c | 651 ++++++++++++++++++ sys/dev/pci/rtl8139.c | 15 + sys/dev/usb/usb-ehci.c | 0 sys/sys/sockio.h | 1 + zloader/Makefile.inc | 2 + 15 files changed, 845 insertions(+), 228 deletions(-) create mode 100644 sys/dev/pci/kb3310.c create mode 100644 sys/dev/usb/usb-ehci.c diff --git a/Makefile b/Makefile index cb8213b4..fe6977a0 100644 --- a/Makefile +++ b/Makefile @@ -47,3 +47,4 @@ clean: perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' lib/libc/Makefile perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' lib/libm/Makefile perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' lib/libz/Makefile + perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' lib/libcrypt/Makefile diff --git a/Targets/Bonito2F7inch/conf/Bonito b/Targets/Bonito2F7inch/conf/Bonito index 58445dd3..953408f8 100644 --- a/Targets/Bonito2F7inch/conf/Bonito +++ b/Targets/Bonito2F7inch/conf/Bonito @@ -31,14 +31,15 @@ option LOONGSON2F_7INCH option HAS_EC #option HAVE_FLASH # Platform has FLASH memory. -#option HAVE_NVENV # Platform has non-volatile env mem +option HAVE_NVENV # Platform has non-volatile env mem +option NVRAM_IN_FLASH option SPANISH # # Module selection. Selects pmon features # select mod_flash_amd # AMD flash device programming #select mod_flash_intel # intel flash device programming -#select mod_flash_sst # sst flash device programming +select mod_flash_sst # sst flash device programming select mod_flash_winbond # winbond flash device programming select mod_debugger # Debugging module select mod_symbols # Symbol table handling @@ -158,13 +159,13 @@ rtl0 at pci? dev ? function ? #option EPLC46 #uhci0 at pci? dev ? function ? ohci* at pci? dev ? function ? -usb* at usbbus ? +#usb* at usbbus ? #ohci1 at pci? dev ? function ? select mod_usb -select mod_usb_storage +#select mod_usb_storage select mod_usb_ohci -select mod_usb_kbd +#select mod_usb_kbd #select mod_usb_uhci #### IDE controllers diff --git a/Targets/Bonito2F7inch/conf/files.Bonito2F7inch b/Targets/Bonito2F7inch/conf/files.Bonito2F7inch index 843ee6b9..6d4eee89 100644 --- a/Targets/Bonito2F7inch/conf/files.Bonito2F7inch +++ b/Targets/Bonito2F7inch/conf/files.Bonito2F7inch @@ -13,7 +13,7 @@ file Targets/Bonito2F7inch/Bonito/tgt_machdep.c define localbus { [base = -1 ] } device localbus attach localbus at mainbus -file Targets/Bonito/dev/localbus.c localbus +file Targets/Bonito2F7inch/dev/localbus.c localbus # Ethernet driver for Discovery ethernet diff --git a/conf/GENERIC_ALL b/conf/GENERIC_ALL index 1555b587..b2fd1dbc 100644 --- a/conf/GENERIC_ALL +++ b/conf/GENERIC_ALL @@ -73,4 +73,3 @@ select cmd_shell # Shell commands, vers, help, eval #select mod_usb_ohci #select mod_usb_kbd #select mod_usb_uhci -option USE_ENVMAC diff --git a/pmon/cmds/password.c b/pmon/cmds/password.c index c131fb81..0af7e5e2 100644 --- a/pmon/cmds/password.c +++ b/pmon/cmds/password.c @@ -1,34 +1,3 @@ -/* - * Copyright (c) 2007 SUNWAH HI-TECH (www.sw-linux.com.cn) - * weiping zhu - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Opsycon AB, Sweden. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ #include #include @@ -70,13 +39,17 @@ #include "dev/pflash_tgt.h" #define FLASH_OFFS (tgt_flashmap()->fl_map_size - 0x2000) -#define PASSRAM_SIZE 71 +#define PASSRAM_SIZE 105 #define PASSRAM_OFFS 0 #define USE_USER_PWD 1 << 0 #define SET_USER_PWD 1 << 1 #define USE_ADMI_PWD 1 << 2 #define SET_ADMI_PWD 1 << 3 +#define USE_SYS_PWD 1 << 4 +#define SET_SYS_PWD 1 <<5 + +#define LENGTH 34 extern struct fl_map *tgt_flashmap(); @@ -150,6 +123,16 @@ int pwd_clear(char *user) flag &= ~SET_ADMI_PWD; buf[2] = flag; } + else if (!strcmp(user,"sys")) + { + memset(buf+71, 0, 34); + cksum(buf, PASSRAM_SIZE - 3, 1); + flag = buf[2]; + flag &= ~USE_SYS_PWD; + flag &= ~SET_SYS_PWD; + buf[2] = flag; + + } fl_program((void *)passram, (void *)buf, PASSRAM_SIZE, 0); return TRUE; } @@ -212,13 +195,23 @@ static void print_password() printf("]\n"); } +int user_index(char* user) +{ + if(!strcmp(user,"user")) + return 0; + if(!strcmp(user,"admin")) + return 1; + if(!strcmp(user,"sys")) + return 2; +} -int user_pwd_set(char* npwd) +int pwd_set(char *user,char* npwd) { char* passram; char buf[PASSRAM_SIZE + 1]; u_int8_t flag; char crypted[50]; + int index = user_index(user); passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; @@ -231,25 +224,27 @@ int user_pwd_set(char* npwd) memset(buf, 0, sizeof(buf)); memcpy(buf, passram, PASSRAM_SIZE); - memcpy(buf + 3, crypted, strlen(crypted)); + memcpy(buf + 3+LENGTH*index, crypted, strlen(crypted)); cksum(buf, PASSRAM_SIZE - 3, 1); printf("%s\n", buf +3); flag = buf[2]; - flag |= SET_USER_PWD; + flag |= 1<<(index*2+1); buf[2] = flag; fl_program((void *)passram, (void *)buf, PASSRAM_SIZE, 0); } -int user_pwd_cmp(char* npwd) +int pwd_cmp(char *user,char* npwd) { char* passram; char buf[PASSRAM_SIZE + 1]; u_int8_t flag; char crypted[50]; + int index = user_index(user); + memset(buf, 0, sizeof(buf)); - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS + 3; + passram = tgt_flashmap()->fl_map_base + FLASH_OFFS + 3+LENGTH*index; memcpy(buf, passram, 34); @@ -261,154 +256,60 @@ int user_pwd_cmp(char* npwd) return FALSE; } -void user_pwd_set_used(int used) + +void pwd_set_used(char *user,int used) { char* passram; char buf[PASSRAM_SIZE + 1]; u_int8_t flag; + int index = user_index(user); passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; memcpy(buf, passram, PASSRAM_SIZE); flag = buf[2]; if (used) - flag |= USE_USER_PWD; + flag |= 1<<(index*2); else - flag &= ~USE_USER_PWD; + flag &= ~(1<<(index*2)); buf[2] = flag; fl_program((void *)passram, (void *)buf, PASSRAM_SIZE, 0); } -int user_pwd_is_used(void) -{ - char* passram; - char buf[PASSRAM_SIZE + 1]; - u_int8_t flag; - - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; - //flag = passram + 2; - memcpy(buf, passram, PASSRAM_SIZE); - - flag = buf[2]; - if (flag & USE_USER_PWD) - return TRUE; - return FALSE; -} - -int user_pwd_is_set(void) +int pwd_is_used(char *user) { char* passram; char buf[PASSRAM_SIZE + 1]; u_int8_t flag; + int index = user_index(user); passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; - //flag = passram + 2; - memcpy(buf, passram, PASSRAM_SIZE); + flag = *(passram + 2); - flag = buf[2]; - if (flag & SET_USER_PWD) + if (flag & (1<<(index*2))) return TRUE; return FALSE; } -int admin_pwd_set(char* npwd) -{ - char* passram; - char buf[PASSRAM_SIZE + 1]; - u_int8_t flag; - char crypted[50]; - - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; - - strcpy(crypted, "$1$abcdefgh$"); - if (make_md5_password(npwd, crypted) != 0) - { - printf("make password error\n"); - return -1; - } - - memset(buf, 0, sizeof(buf)); - memcpy(buf, passram, PASSRAM_SIZE); - memcpy(buf + 37, crypted, strlen(crypted)); - cksum(buf, PASSRAM_SIZE - 3, 1); - - flag = buf[2]; - flag |= SET_ADMI_PWD; - buf[2] = flag; - fl_program((void *)passram, (void *)buf, PASSRAM_SIZE, 0); -} - -int admin_pwd_cmp(char* npwd) -{ - char* passram; - char buf[PASSRAM_SIZE + 1]; - u_int8_t flag; - char crypted[50]; - - memset(buf, 0, sizeof(buf)); - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS + 37; - - memcpy(buf, passram, 34); - - if (check_md5_password(npwd, buf)) - { - return FALSE; - } - else - { - return TRUE; - } -} - -void admin_pwd_set_used(int used) +int pwd_is_set(char *user) { char* passram; char buf[PASSRAM_SIZE + 1]; u_int8_t flag; + int index = user_index(user); passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; + //flag = passram + 2; memcpy(buf, passram, PASSRAM_SIZE); flag = buf[2]; - if (used) - flag |= USE_ADMI_PWD; - else - flag &= ~USE_ADMI_PWD; - buf[2] = flag; - fl_program((void *)passram, (void *)buf, PASSRAM_SIZE, 0); -} - -int admin_pwd_is_used(void) -{ - char* passram; - char buf[PASSRAM_SIZE + 1]; - u_int8_t flag; - - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; - flag = passram + 2; - - if (flag & USE_ADMI_PWD) + if (flag & (1<<(index*2+1))) return TRUE; return FALSE; } -int admin_pwd_is_set(void) -{ - char* passram; - char buf[PASSRAM_SIZE + 1]; - u_int8_t flag; - - passram = tgt_flashmap()->fl_map_base + FLASH_OFFS; - memcpy(buf, passram, PASSRAM_SIZE); - flag = buf[2]; - if (flag & SET_ADMI_PWD) - { - return TRUE; - } - return FALSE; -} int cmd_password (int ac, char *av[]) { @@ -480,40 +381,39 @@ int cmd_password (int ac, char *av[]) } */ - if (strcmp(user, "admin")==0) { - if (pwd_exist() && admin_pwd_is_set()) + if (pwd_exist() && pwd_is_set(user)) { if (!(flags & SET_PWD)) { - printf("(current) BIOS Admin Password: "); + printf("(current) BIOS %s Password: ",user); scanf("%s", pwd); } putchar('\n'); - if (admin_pwd_cmp(pwd)) + if (pwd_cmp(user,pwd)) { printf("Current BIOS Admin Password is correct!\n"); if (flags & CLEAR_PWD) { - pwd_clear("admin"); - printf("Empty the current BIOS Admin Password!\n"); + pwd_clear(user); + printf("Empty the current BIOS %s Password!\n",user); } else if (flags & USE_PWD) { - admin_pwd_set_used(atoi(pval)); + pwd_set_used(user,atoi(pval)); } else { - printf("New BIOS Admin Password: "); + printf("New BIOS %s Password: ",user); scanf("%s", npwd); putchar('\n'); - printf("Retype new BIOS Admin Password: "); + printf("Retype new BIOS %s Password: ",user); scanf("%s", rnpwd); putchar('\n'); if((strcmp(npwd, rnpwd) == 0) && (strlen(npwd) != 0)) { - admin_pwd_set(npwd); - printf("New BIOS Admin Password is set!\n"); + pwd_set(user,npwd); + printf("New BIOS %s Password is set!\n",user); } else { @@ -530,76 +430,21 @@ int cmd_password (int ac, char *av[]) { if (flags & NEW_PWD) { - admin_pwd_set(pwd); - printf("New BIOS Admin Password is set!\n"); + pwd_set(user,pwd); + printf("New BIOS %s Password is set!\n",user); } else - printf("BIOS Admin Password is not set!\n"); + printf("BIOS %s Password is not set!\n",user); } } - else if (strcmp(user, "user")==0) - { - if (pwd_exist() && user_pwd_is_set()) - { - if (!(flags & SET_PWD)) - { - printf("(current) BIOS User Password: "); - scanf("%s", pwd); - } - putchar('\n'); - if (user_pwd_cmp(pwd)) - { - printf("Current BIOS User Password is correct!\n"); - if (flags & CLEAR_PWD) - { - //user_pwd_clear(); - pwd_clear("user"); - printf("Empty the current BIOS User Password!\n"); - } - else if (flags & USE_PWD) - { - user_pwd_set_used(atoi(pval)); - } - else - { - printf("New BIOS User Password: "); - scanf("%s", npwd); - putchar('\n'); - printf("Retype new BIOS User Password: "); - scanf("%s", rnpwd); - putchar('\n'); - if((strcmp(npwd, rnpwd) == 0) && (strlen(npwd) != 0)) - { - user_pwd_set(npwd); - printf("New BIOS User Password is set!\n"); - } - else - { - printf("Sorry, passwords do not match or invalid.\n"); - } - } - } - else - printf("You enter the password is incorrect!\n"); - - } - else - { - if (flags & NEW_PWD) - { - user_pwd_set(pwd); - printf("New BIOS User Password is set!\n"); - } - else - printf("BIOS User Password is not set!\n"); - } - } print_password(); return EXIT_SUCCESS; } + + /* * Command table registration * ========================== diff --git a/pmon/common/main.c b/pmon/common/main.c index 1c90089a..6b9db22b 100644 --- a/pmon/common/main.c +++ b/pmon/common/main.c @@ -34,6 +34,9 @@ */ #include +#include +#include +#include #include #include #include @@ -59,6 +62,10 @@ #include "sd.h" #include "wd.h" + +#include +#include +#include extern void *callvec; unsigned int show_menu; @@ -200,7 +207,7 @@ int check_user_password() struct termio tty; int i; char c; - if(!pwd_exist()||!user_pwd_is_set()) + if(!pwd_exist()||!pwd_is_set("user")) return 0; for(i=0;i<2;i++) @@ -227,7 +234,7 @@ loop0: } } - if(!user_pwd_cmp(buf)) + if(!pwd_cmp("user",buf)) { printf("\nPassword error!\n"); printf("Please input user password:"); @@ -249,7 +256,7 @@ int check_admin_password() struct termio tty; int i; char c; - if(!pwd_exist()||!admin_pwd_is_set()) + if(!pwd_exist()||!pwd_is_set("admin")) return 0; for(i=0;i<2;i++) @@ -276,7 +283,7 @@ loop1: } } - if(!admin_pwd_cmp(buf)) + if(!pwd_cmp("admin",buf)) { printf("\nPassword error!\n"); printf("Please input admin password:"); @@ -293,6 +300,61 @@ loop1: return 0; } + +int check_sys_password() +{ + char buf[50]; + struct termio tty; + int i; + char c; + int count=0; + if(!pwd_exist()||!pwd_is_set("sys")) + return 0; + + for(i=0;i<6;i++) + { + ioctl(i,TCGETA,&tty); + tty.c_lflag &= ~ ECHO; + ioctl(i,TCSETAW,&tty); + } + + + printf("\nPlease input sys password:"); +loop1: + for(i= 0;i<50;i++) + { + c=getchar(); + if(c!='\n'&&c!='\r'){ + printf("*"); + buf[i] = c; + } + else + { + buf[i]='\0'; + break; + } + } + + if(!pwd_cmp("sys",buf)) + { + printf("\nPassword error!\n"); + printf("Please input sys password:"); + count++; + if(count==3) + return -1; + goto loop1; + } + + + for(i=0;i<6;i++) + { + tty.c_lflag |= ECHO; + ioctl(i,TCSETAW,&tty); + } + + return 0; +} + /* * Main interactive command loop * ----------------------------- diff --git a/pmon/dev/flash.c b/pmon/dev/flash.c index 61a1b45f..714a1492 100644 --- a/pmon/dev/flash.c +++ b/pmon/dev/flash.c @@ -83,14 +83,15 @@ static quad_t widedata; #define ConvAddr2(A) (A*2) static __inline void fl_mydetect(struct fl_map *map) { + char oldc=inb(map->fl_map_base); outb((map->fl_map_base + SST_CMDOFFS1), 0xAA); outb((map->fl_map_base + SST_CMDOFFS2), 0x55); outb((map->fl_map_base + SST_CMDOFFS1), FL_AUTOSEL); - if(inb(map->fl_map_base)==0xbf){map->fl_type=TYPE_SST;return;} + if(inb(map->fl_map_base)!=oldc){map->fl_type=TYPE_SST;return;} outb((map->fl_map_base + ConvAddr1(0x555)), 0xAA); outb((map->fl_map_base + ConvAddr1(0x2aa)), 0x55); outb((map->fl_map_base + ConvAddr1(0x555)), FL_AUTOSEL); - if(inb(map->fl_map_base)==0x20){map->fl_type=TYPE_ST;return;} + if(inb(map->fl_map_base)!=oldc){map->fl_type=TYPE_ST;return;} else {map->fl_type=TYPE_AMD; } } @@ -306,6 +307,9 @@ fl_devident(void *base, struct fl_map **m) } tgt_flashwrite_disable(); + outb((map->fl_map_base), 0xf0); + outb((map->fl_map_base), 0x90); + outb((map->fl_map_base), 0x00); return((struct fl_device *)NULL); } diff --git a/pmon/dev/flashdev.c b/pmon/dev/flashdev.c index a8fe0e69..bea3548b 100644 --- a/pmon/dev/flashdev.c +++ b/pmon/dev/flashdev.c @@ -99,6 +99,9 @@ struct fl_device fl_known_dev[] = { 512*__KB, 64*__KB, NULL, &fl_func_amd }, { "EN29LV040", 0x1c, 0x4f, FL_PROTO_AMD, FL_CAP_DE, 512*__KB, 64*__KB, NULL, &fl_func_amd }, + /* zfx, should be compatible */ + {"MX29LV040", 0xC2, 0x4F, FL_PROTO_SST, FL_CAP_DE, + 512 * __KB, 64 * __KB, NULL, &fl_func_sst}, #endif /* NMOD_FLASH_AMD */ #if NMOD_FLASH_INTEL > 0 { "i28F016SA", 0x89, 0xa0, FL_PROTO_INT, FL_CAP_A7, diff --git a/sys/dev/pci/e100.c b/sys/dev/pci/e100.c index 01a4e40d..735dbeb3 100644 --- a/sys/dev/pci/e100.c +++ b/sys/dev/pci/e100.c @@ -3922,6 +3922,22 @@ fxp_ether_ioctl(ifp, cmd, data) cmd_setmac_fxp0(p[0],p[1]); } break; + case SIOCGETHERADDR: + { + long long val; + char *p=data; + mynic_fxp = sc; + val =e100_read_mac(netdev_priv(mynic_fxp)); + p[5] = val>>40&0xff; + p[4] = val>>32&0xff; + p[3] = val>>24&0xff; + p[2] = val>>16&0xff; + p[1] = val>>8&0xff; + p[0] = val&0xff; + + } + break; + case SIOCRDEEPROM: { long *p=data; diff --git a/sys/dev/pci/em/if_em.c b/sys/dev/pci/em/if_em.c index 0c2ac08e..52e7440b 100644 --- a/sys/dev/pci/em/if_em.c +++ b/sys/dev/pci/em/if_em.c @@ -120,6 +120,7 @@ extern FILE _iob[]; #include "e1000_hw.c" #include "e1000_param.c" +static long long e1000_read_mac(struct net_device *nic); static int pci_read_config_dword(struct pci_dev *linuxpd, int reg, u32 *val) { @@ -484,6 +485,22 @@ e1000_ether_ioctl(ifp, cmd, data) cmd_setmac_em0(p[0],p[1]); } break; + case SIOCGETHERADDR: + { + long long val; + char *p=data; + mynic_em = sc; + val =e1000_read_mac(mynic_em); + p[5] = val>>40&0xff; + p[4] = val>>32&0xff; + p[3] = val>>24&0xff; + p[2] = val>>16&0xff; + p[1] = val>>8&0xff; + p[0] = val&0xff; + + } + break; + case SIOCRDEEPROM: { long *p=data; diff --git a/sys/dev/pci/kb3310.c b/sys/dev/pci/kb3310.c new file mode 100644 index 00000000..30445493 --- /dev/null +++ b/sys/dev/pci/kb3310.c @@ -0,0 +1,651 @@ +/* + * kb3310.c + * handle all the thing about the EC kb3310 + * so far, the following functions are included : + * 1, fixup some patch for YEELOONG platform + * 2, update EC rom(including version) + * + * NOTE : + * This device is connected to the LPC bus and then to + * PCI bus through cs5536 chip + */ + +#include +#include +#include +#include +#include +#include "include/kb3310.h" + +/************************************************************/ +/* ec delay time 500us for register and status access */ +#define EC_REG_DELAY 500 //unit : us +/* ec rom flash id size and array : Manufacture ID[1], Device ID[2] */ +#define EC_ROM_ID_SIZE 3 +unsigned char ec_rom_id[EC_ROM_ID_SIZE]; +/* delay function */ +extern void delay(int microseconds); +/* version array */ +unsigned char ec_ver[VER_MAX_SIZE]; + +/* base address for io access */ +#undef MIPS_IO_BASE +#define MIPS_IO_BASE (0xbfd00000) + +/* EC access port for sci communication */ +#define EC_CMD_PORT 0x66 +#define EC_STS_PORT 0x66 +#define CMD_INIT_IDLE_MODE 0xdd +#define CMD_EXIT_IDLE_MODE 0xdf +#define CMD_INIT_RESET_MODE 0xd8 +#define CMD_REBOOT_SYSTEM 0x8c + +/* ec internal register */ +#define REG_POWER_MODE 0xF710 +#define FLAG_NORMAL_MODE 0x00 +#define FLAG_IDLE_MODE 0x01 +#define FLAG_RESET_MODE 0x02 + +/* read and write operation */ +#undef read_port +#undef write_port +#define read_port(x) (*(volatile unsigned char *)(MIPS_IO_BASE | x)) +#define write_port(x, y) (*(volatile unsigned char *)(MIPS_IO_BASE | x) = y) + +/* ec update program flag */ +#define PROGRAM_FLAG_NONE 0x00 +#define PROGRAM_FLAG_VERSION 0x01 +#define PROGRAM_FLAG_ROM 0x02 + +/***************************************************************/ + +/* enable the internal watchdog */ +void ec_enable_wdt_mode(void) +{ + wrec(REG_WDTCFG, 0x83); +} + +/* disable the internal watchdog */ +void ec_disable_wdt_mode(void) +{ + wrec(REG_WDTPF, 0x03); + wrec(REG_WDTCFG, 0x48); +} + +/* enable the chip reset mode */ +int ec_init_reset_mode(void) +{ + int timeout; + unsigned char status = 0; + + /* make chip goto reset mode */ + delay(EC_REG_DELAY); + write_port(EC_CMD_PORT, CMD_INIT_RESET_MODE); + delay(EC_REG_DELAY); + + timeout = 0x1000; + status = read_port(EC_STS_PORT); + while(timeout--){ + if(status & (1 << 1)){ + status = read_port(EC_STS_PORT); + delay(EC_REG_DELAY); + printf("ec issued reset command status : 0x%x\n", status); + continue; + } + break; + } + if(timeout <= 0){ + printf("ec rom fixup : enter reset mode failed.\n"); + return -1; + } + + /* make the action take active */ + timeout = 1000; + status = rdec(REG_POWER_MODE) & FLAG_RESET_MODE; + while(timeout--){ + if(status){ + delay(EC_REG_DELAY); + break; + } + status = rdec(REG_POWER_MODE) & FLAG_RESET_MODE; + delay(EC_REG_DELAY); + printf("reset 0xf710 : 0x%x\n", rdec(REG_POWER_MODE)); + } + if(timeout <= 0){ + printf("ec rom fixup : can't check reset status.\n"); + return -1; + } + + /* set MCU to reset mode */ + delay(EC_REG_DELAY); + status = rdec(REG_PXCFG); + status |= (1 << 0); + wrec(REG_PXCFG, status); + delay(EC_REG_DELAY); + + /* disable FWH/LPC */ + delay(EC_REG_DELAY); + status = rdec(REG_LPCCFG); + status &= ~(1 << 7); + wrec(REG_LPCCFG, status); + delay(EC_REG_DELAY); + + printf("entering reset mode ok................\n"); + + return 0; +} + +/* make ec exit from reset mode */ +void ec_exit_reset_mode(void) +{ + u8 regval; + + delay(EC_REG_DELAY); + regval = rdec(0xfe95); + regval |= (1 << 7); + wrec(0xfe95, regval); + delay(EC_REG_DELAY); + regval = rdec(REG_PXCFG); + regval &= ~(1 << 0); + wrec(REG_PXCFG, regval); + delay(EC_REG_DELAY); + + return; +} + +/* make ec goto idle mode */ +void ec_init_idle_mode(void) +{ + int timeout; + unsigned char status = 0; + + /* make chip goto idle mode */ + delay(EC_REG_DELAY); + write_port(EC_CMD_PORT, CMD_INIT_IDLE_MODE); + delay(EC_REG_DELAY); + + timeout = 0x1000; + status = read_port(EC_STS_PORT); + delay(EC_REG_DELAY); + while(timeout--){ + if(status & (1 << 1)){ + status = read_port(EC_STS_PORT); + delay(EC_REG_DELAY); + printf("ec issued init command status : 0x%x\n", status); + continue; + } + break; + } + if(timeout <= 0){ + printf("ec rom fixup : enter idle mode failed.\n"); + return; + } + + /* make the action take active */ + timeout = 1000; + status = rdec(REG_POWER_MODE) & FLAG_IDLE_MODE; + while(timeout--){ + if(status){ + delay(EC_REG_DELAY); + break; + } + status = rdec(REG_POWER_MODE) & FLAG_IDLE_MODE; + delay(EC_REG_DELAY); + printf("0xf710 : 0x%x\n", rdec(0xF710)); + } + if(timeout <= 0){ + printf("ec rom fixup : can't check out the status.\n"); + return; + } + + return; +} + +/* make ec exit from idle mode */ +void ec_exit_idle_mode(void) +{ + int timeout; + u8 status; + + /* make chip exit idle mode */ + delay(EC_REG_DELAY); + write_port(EC_CMD_PORT, CMD_EXIT_IDLE_MODE); + delay(EC_REG_DELAY); + + timeout = 0x1000; + status = read_port(EC_STS_PORT); + while(timeout--){ + if(status & (1 << 1)){ + status = read_port(EC_STS_PORT); + delay(EC_REG_DELAY); + continue; + } + break; + } + if(timeout <= 0){ + printf("ec rom fixup : exit idle mode failed.\n"); + printf(" status 0x%x\n", rdec(REG_POWER_MODE)); + return; + } + + return; +} + +/* reboot system for syncing including EC rom self */ +void ec_shutdown_system(void) +{ + int timeout; + u8 status; + + /* make chip exit idle mode */ + delay(EC_REG_DELAY * 50); + write_port(EC_CMD_PORT, CMD_REBOOT_SYSTEM); + delay(EC_REG_DELAY); + + timeout = 0x1000; + status = read_port(EC_STS_PORT); + printf("ec will shutdown the whole system.\n"); + while(timeout--){ + if(status & (1 << 1)){ + status = read_port(EC_STS_PORT); + delay(EC_REG_DELAY); + continue; + } + break; + } + if(timeout <= 0){ + printf("ec shutdown system failed.\n"); + return; + } + + return; +} + +/* get flash rom product id number */ +void ec_get_product_id(void) +{ + u8 regval; + int i; + + /* get product id from ec rom */ + delay(EC_REG_DELAY); + regval = rdec(XBI_BANK | XBISPICFG); + regval |= 0x18; + wrec(XBI_BANK | XBISPICFG, regval); + delay(EC_REG_DELAY); + + wrec(XBI_BANK | XBISPICMD, 0x9f); + while( (rdec(XBI_BANK | XBISPICFG)) & (1 << 1) ); + + for(i = 0; i < EC_ROM_ID_SIZE; i++){ + wrec(XBI_BANK | XBISPICMD, 0x00); + while( (rdec(XBI_BANK | XBISPICFG)) & (1 << 1) ); + ec_rom_id[i] = rdec(XBI_BANK | XBISPIDAT); + } + + delay(EC_REG_DELAY); + regval = rdec(XBI_BANK | XBISPICFG); + regval &= 0xE7; + wrec(XBI_BANK | XBISPICFG, regval); + delay(EC_REG_DELAY); + + return; +} + +/* check if flash busy or not */ +int ec_flash_busy(void) +{ + unsigned char count = 0; + + while(count < 10){ + wrec(XBI_BANK | XBISPICMD, 5); + while( (rdec(XBI_BANK | XBISPICFG)) & (1 << 1) ); + if((rdec(XBI_BANK | XBISPIDAT) & 0x01) == 0x00){ + return 0x00; + } + count++; + } + + return 0x01; +} + +/* erase the whole flash chip */ +int ec_flash_erase(void) +{ + int timeout = 0x10000; + unsigned char val; + + /* enable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG); + wrec(XBI_BANK | XBISPICFG, val | (1 << 3) | (1 << 0)); + + /* check is it busy. */ + if(ec_flash_busy()){ + printf("xbi : flash busy 2.\n"); + return -1; + } + + /* unprotect the status register */ + wrec(XBI_BANK | XBISPIDAT, 2); + /* write the status register */ + wrec(XBI_BANK | XBISPICMD, 1); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 3.\n"); + return -1; + } + + /* enable write spi flash */ + wrec(XBI_BANK | XBISPICMD, 0x06); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 4.\n"); + return -1; + } + + /* erase the whole chip first */ + wrec(XBI_BANK | XBISPICMD, 0xC7); + timeout = 0x10000000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 5.\n"); + return -1; + } + /* disable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG) & (~((1 << 3) | (1 << 0))); + wrec(XBI_BANK | XBISPICFG, val); + + return 0; +} + +/* programing one byte to ec rom */ +int ec_program_byte(unsigned long addr, unsigned char byte) +{ + int timeout = 0x10000; + unsigned char val; + + /* enable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG); + wrec(XBI_BANK | XBISPICFG, val | (1 << 3) | (1 << 0)); + + /* check is it busy. */ + if(ec_flash_busy()){ + printf("xbi : flash busy 1.\n"); + return 0x00; + } + + /* enable write spi flash */ + wrec(XBI_BANK | XBISPICMD, 0x06); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 1.\n"); + return -1; + } + if(ec_flash_busy()){ + printf("xbi : flash busy 1.\n"); + return 0x00; + } + + /* write the address */ + wrec(XBI_BANK | XBISPIA2, (unsigned char)((addr & 0xff0000) >> 16)); + wrec(XBI_BANK | XBISPIA1, (unsigned char)((addr & 0x00ff00) >> 8)); + wrec(XBI_BANK | XBISPIA0, (unsigned char)((addr & 0x0000ff) >> 0)); + wrec(XBI_BANK | XBISPIDAT, byte); + /* start action */ + wrec(XBI_BANK | XBISPICMD, 2); + timeout = 0x1000; + while(timeout-- >= 0){ + if( !(rdec(XBI_BANK | XBISPICFG) & (1 << 1)) ) + break; + } + if(timeout <= 0){ + printf("xbi : write timeout 2.\n"); + return -1; + } + if(ec_flash_busy()){ + printf("xbi : flash busy 1.\n"); + return 0x00; + } + + /* disable spicmd writing. */ + val = rdec(XBI_BANK | XBISPICFG) & (~((1 << 3) | (1 << 0))); + wrec(XBI_BANK | XBISPICFG, val); + + if(ec_flash_busy()){ + printf("xbi : flash busy 1.\n"); + return 0x00; + } + + return 0; +} + +/* program data to ec flash rom */ +int ec_program_data(unsigned char *buf, unsigned long len, int flag) +{ + unsigned char val; + int i; + int ret = 0; + unsigned long addr = 0; + unsigned char *ptr = NULL; + unsigned long size = 0; + + ptr = (unsigned char *)buf; + size = len; + if(flag == PROGRAM_FLAG_NONE){ + return -1; + } + else if(flag == PROGRAM_FLAG_VERSION){ + if(ptr[0] == 'D'){ + return 0; + } + addr = 0xf300; + ptr[size - 1] = '\0'; + printf("starting programming ec version : %s\n", ptr); + }else if(flag == PROGRAM_FLAG_ROM){ + addr = 0x00; + printf("starting programming ec rom.\n"); + } + + /* program data */ + for(i = 0; i < size; i++){ + ec_program_byte(addr + i, ptr[i]); + val = rdec(addr + i); + if(val != ptr[i]){ + //we make the flash data equal to the memory data. + ec_program_byte(addr + i, ptr[i]); + val = rdec(addr + i); + if(val != ptr[i]){ + printf("Second flash program failed at:\t"); + printf("addr : 0x%x, memory : 0x%x, flash : 0x%x\n", addr + i, ptr[i], val); + ret = -1; + break; + }/* if '2' time */ + }/* if '1' time */ + if( (i % 0x400) == 0x00 ){ + printf("."); + } + } + + if(flag == PROGRAM_FLAG_VERSION){ + if(ret){ + printf("programming ec version error.\n"); + }else{ + printf("programming ec version ok.\n"); + } + }else if(flag == PROGRAM_FLAG_ROM){ + if(ret){ + printf("\nprogramming ec rom error.\n"); + }else{ + printf("\nprogramming ec rom ok.\n"); + } + } + + return ret; +} + +/***************************************************************/ + +/* fixup ec fan bug */ +void ec_fan_fixup(void) +{ + int i; + unsigned char val; + unsigned char reg_config; + + /* read the fan device config */ + for(i = 0; i < SMBDAT_SIZE; i++){ + wrec(REG_SMBDAT_START + i, 0x00); + } + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x01); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 1); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x90|0x01); + wrec(REG_SMBCMD, 0x01); + wrec(REG_SMBPRTCL, 0x09); + while(!(rdec(REG_SMBSTS) & (1 << 7))); + reg_config = rdec(REG_SMBDAT_START); + + /* enable the fan device */ + for(i = 0; i < SMBDAT_SIZE; i++){ + wrec(REG_SMBDAT_START + i, 0x00); + } + wrec(REG_SMBSTS, 0x00); + wrec(REG_SMBCNT, 0x01); + val = rdec(REG_SMBPIN); + val = (val & 0xfc) | (1 << 1); + wrec(REG_SMBPIN, val); + wrec(REG_SMBADR, 0x90); + wrec(REG_SMBCMD, 1); + wrec(REG_SMBDAT_START, reg_config | (1 << 2)); + wrec(REG_SMBPRTCL, 0x06); + + /* enable fan function, corresponding gpio and read status */ + val = rdec(0xfc02); + wrec(0xfc02, val & ~(1 << 4)); + + val = rdec(0xfc62); + wrec(0xfc62, val | (1 << 4)); + + val = rdec(0xfe20); + wrec(0xfe20, val | (1 << 7) | (1 << 0)); + + return; +} + +/* get ec rom type */ +void ec_get_rom_type(void) +{ + /* make chip goto idle mode */ + ec_init_idle_mode(); + + /* get product id from ec rom */ + ec_get_product_id(); + + /* make chip exit idle mode */ + ec_exit_idle_mode(); + + printf("ec rom id : PRODUCT ID : 0x%2x, FIRST DEVICE ID : 0x%2x, SECOND DEVICE ID : 0x%2x\n", ec_rom_id[0], ec_rom_id[1], ec_rom_id[2]); + + return; +} + +/***************************************************************/ + +/* update ec rom */ +void ec_update_rom(void *src, int size) +{ + unsigned char *buf; + unsigned char val; + int ret = 0; + + buf = src; + if(size > EC_ROM_MAX_SIZE){ + printf("ec-update : out of range.\n"); + return; + } + + /* goto reset mode */ + ret = ec_init_reset_mode(); + if(ret < 0){ + printf("ec-update : init reset mode failed.\n"); + return; + } + + /* erase stage */ + printf("erasing start erasing the whole chip.\n"); + ret = ec_flash_erase(); + if(ret < 0){ + printf("erase chip failed for first time.\n"); + val = ec_flash_erase(); + if(val){ + printf("erase chip failed for second time.\n"); + return; + } + } + printf("erasing the whole chip ok.\n"); + delay(1000000); + + /* program rom stage */ + ret = ec_program_data(buf, size, PROGRAM_FLAG_ROM); + if(ret < 0){ + return; + } + + /* program version stage */ + ret = ec_program_data(ec_ver, VER_MAX_SIZE, PROGRAM_FLAG_VERSION); + if(ret < 0){ + return; + } + + /* exit reset mode */ + ec_exit_reset_mode(); + + /* reboot bios and EC rom for syncing */ + ec_shutdown_system(); + + return; +} + +/* ec fixup routine */ +void ec_fixup(void) +{ + ec_fan_fixup(); + printf("ec fan fixup ok.\n"); + ec_get_rom_type(); + printf("ec rom fixup ok.\n"); +} + +/* get EC version from EC rom */ +unsigned char *get_ecver(void){ + static unsigned char val[VER_MAX_SIZE] = {0}; + int i; + unsigned char *p; + unsigned int addr = VER_ADDR; + for(i = 0; i < VER_MAX_SIZE && rdec(addr) != '\0'; i++){ + val[i] = rdec(addr); + addr++; + } + p = val; + //if((strncmp(p, "LM8089", 6)) != 0){ + if (*p == 0){ + p = "undefined"; + } + return p; +} diff --git a/sys/dev/pci/rtl8139.c b/sys/dev/pci/rtl8139.c index c198e1eb..50b287c0 100644 --- a/sys/dev/pci/rtl8139.c +++ b/sys/dev/pci/rtl8139.c @@ -1466,6 +1466,21 @@ rtl_ether_ioctl(ifp, cmd, data) cmd_setmac(p[0],p[1]); } break; + case SIOCGETHERADDR: + { + long long val; + char *p=data; + mynic = sc; + val =rtl_read_mac(mynic); + p[5] = val>>40&0xff; + p[4] = val>>32&0xff; + p[3] = val>>24&0xff; + p[2] = val>>16&0xff; + p[1] = val>>8&0xff; + p[0] = val&0xff; + + } + break; case SIOCRDEEPROM: { long *p=data; diff --git a/sys/dev/usb/usb-ehci.c b/sys/dev/usb/usb-ehci.c new file mode 100644 index 00000000..e69de29b diff --git a/sys/sys/sockio.h b/sys/sys/sockio.h index a7643f7a..357f67fa 100644 --- a/sys/sys/sockio.h +++ b/sys/sys/sockio.h @@ -109,4 +109,5 @@ #define SIOCETHTOOL 0x8946 /* Ethtool interface */ #define SIOCRDEEPROM 0x8947 /* Read EEprom 82541 */ #define SIOCWREEPROM 0x8948 /* Write eeprom 82541 */ +#define SIOCGETHERADDR 0x8950 /* Ethtool interface */ #endif /* !_SYS_SOCKIO_H_ */ diff --git a/zloader/Makefile.inc b/zloader/Makefile.inc index ffc3e654..fe7a4361 100755 --- a/zloader/Makefile.inc +++ b/zloader/Makefile.inc @@ -105,6 +105,8 @@ cfg: # DO NOT DELETE perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' ../lib/libc/Makefile perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' ../lib/libm/Makefile + perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' ../lib/libz/Makefile + perl -i -ne 'print;exit if(/^# DO NOT DELETE/);' ../lib/libcrypt/Makefile cd ../Targets/${TARGET}/conf/;pmoncfg ${TARGETEL} make -C ../Targets/${TARGET}/compile/${TARGETEL}/ depend clean recfg: From e2353a699eb63a429b6e5f6a3d699cc8caa9b31c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 20 Mar 2009 21:15:48 +0800 Subject: [PATCH 5/7] change yaffs. --- Targets/fcr_soc/conf/fcr | 6 +- Targets/fcr_soc/fcr/tgt_machdep.c | 2 +- pmon/fs/yaffsfs.c | 229 ++++++++++++++++-------------- sys/dev/nand/fcr-nand.c | 11 +- 4 files changed, 130 insertions(+), 118 deletions(-) diff --git a/Targets/fcr_soc/conf/fcr b/Targets/fcr_soc/conf/fcr index 3521ab95..02ee23a4 100644 --- a/Targets/fcr_soc/conf/fcr +++ b/Targets/fcr_soc/conf/fcr @@ -70,9 +70,9 @@ select cmd_shell # Shell commands, vers, help, eval # Platform options # select mod_uart_ns16550 # Standard UART driver -option APB_CLK=80000000 -option CPU_CLK=250000000 -option CONS_BAUD=B57600 +option APB_CLK=100000000 +option CPU_CLK=200000000 +option CONS_BAUD=B115200 select ext2 select yaffsfs #select fatfs diff --git a/Targets/fcr_soc/fcr/tgt_machdep.c b/Targets/fcr_soc/fcr/tgt_machdep.c index 6adbde74..a8fc0894 100644 --- a/Targets/fcr_soc/fcr/tgt_machdep.c +++ b/Targets/fcr_soc/fcr/tgt_machdep.c @@ -191,7 +191,7 @@ initmips(unsigned int memsz) SBD_DISPLAY("BEV0",0); printf("BEV in SR set to zero.\n"); - //fcr_soc_nand_init(); + fcr_soc_nand_init(); /* diff --git a/pmon/fs/yaffsfs.c b/pmon/fs/yaffsfs.c index 564746e4..a3d6d29e 100644 --- a/pmon/fs/yaffsfs.c +++ b/pmon/fs/yaffsfs.c @@ -23,6 +23,7 @@ #include #include #include +#include const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.21 2008/07/03 20:06:05 charles Exp $"; //################################### definition ######################### @@ -933,7 +934,6 @@ typedef struct yaffs_DeviceStruct yaffs_Device; static yaffsfs_Handle yaffsfs_handle[YAFFSFS_N_HANDLES]; yaffs_Device gdev; -struct mtd_info gmtd; int yaffs_open(int fd, const char *path, int oflag, int mode); int yaffs_read(int fd, void *buf, unsigned int nbyte); @@ -4061,6 +4061,8 @@ int yaffs_GutsInitialise(yaffs_Device * dev) dev->internalEndBlock <= (dev->internalStartBlock + dev->nReservedBlocks + 2) // otherwise it is too small ) { + + printf("inbandTags %x,yffs2 %x,bpc %x,cpb %x,rb %x,isb %x,ieb %x,and %x\n ",dev->inbandTags, dev->isYaffs2,dev->totalBytesPerChunk, dev->nChunksPerBlock,dev->nReservedBlocks,dev->internalStartBlock,dev->internalEndBlock,dev->internalStartBlock + dev->nReservedBlocks + 2); printf("some device data may error!\n"); return YAFFS_FAIL; } @@ -4446,83 +4448,6 @@ static yaffs_Object *yaffsfs_FindObject(yaffs_Object *relativeDirectory, const c } -int yaffs_open(int fd, const char *path, int oflag, int mode) -{ - yaffs_Object *obj = NULL; - int handle = -1; - yaffsfs_Handle *h = NULL; - int i; - - path += 5; - - //get rid of /dev/yaffs@mtdblock0/vmlinx to /vmlinux - while(*path && *path!='/') path++; - if(!*path) - { - printf("error path!\n"); - return -1; - } - - if(gdev.endBlock <= 0) - { - if(yaffs_initialise()==-1) - { - printf("Yaffs2 initialise failed!\n"); - return -1; - } - } - - handle = yaffsfs_GetHandle(); - if(handle >= 0) - { - h = yaffsfs_GetHandlePointer(handle); - - // try to find the exisiting object - obj = yaffsfs_FindObject(NULL,path,0); - if(obj && obj->variantType != YAFFS_OBJECT_TYPE_FILE) - obj = NULL; - if(obj) - { - h->obj = obj; - h->inUse = 1; - h->readOnly = (oflag & (O_WRONLY | O_RDWR)) ? 0 : 1; - h->append = (oflag & O_APPEND) ? 1 : 0; - h->exclusive = (oflag & O_EXCL) ? 1 : 0; - h->position = 0; - - obj->inUse++; - } - else - { - yaffsfs_PutHandle(handle); - handle = -1; - return 0; - } - } - - if(handle >= 0) - { - _file[fd].valid = 1; - _file[fd].data = (void *)h; - } - return fd; -} - - - -int yaffs_close(int fd) -{ - //yaffsfs_PutHandle(fd); - yaffsfs_Handle *h; - - h = (struct yaffs_Handle *)_file[fd].data; - if(h) - { - h->inUse=0; - h->obj=NULL; - } - return 0; -} int yaffs_read(int fd, void *buf, unsigned int nbyte) { @@ -4669,37 +4594,7 @@ int nandmtd2_InitialiseNAND(yaffs_Device *dev) int yaffs_initialise() { int ok; - int nBlocks; - - memset(&gdev,0,sizeof(yaffs_Device)); - memset(&gmtd,0,sizeof(struct mtd_info)); - - //Now initialise soc' Nand Flash: mtd,nand_chip - fcr_soc_foryaffs_init(&gmtd); - - nBlocks = gmtd.size/gmtd.erasesize; - gdev.genericDevice = &gmtd; - gdev.startBlock = 0; - gdev.endBlock = nBlocks - 1; - gdev.nChunksPerBlock = gmtd.erasesize/gmtd.writesize; - gdev.totalBytesPerChunk = gmtd.writesize; - gdev.nReservedBlocks = 5; - gdev.nShortOpCaches = 0; - gdev.name = gmtd.name; - - gdev.writeChunkWithTagsToNAND = nandmtd2_WriteChunkWithTagsToNAND; - gdev.readChunkWithTagsFromNAND = nandmtd2_ReadChunkWithTagsFromNAND; - gdev.markNANDBlockBad = nandmtd2_MarkNANDBlockBad; - gdev.queryNANDBlock = nandmtd2_QueryNANDBlock; - gdev.spareBuffer = malloc(gmtd.oobsize); - gdev.isYaffs2 = 1; - gdev.eraseBlockInNAND = nandmtd2_EraseBlockInNAND; - gdev.initialiseNAND = nandmtd2_InitialiseNAND; - - //use checkpoint to mount yaffs - gdev.skipCheckpointRead = 0; - gdev.skipCheckpointWrite = 0; yaffsfs_InitHandles(); @@ -4756,3 +4651,121 @@ int yaffs_lseek(int fd, off_t offset, int where) return pos; } +int yaffs_open(int fd, const char *path, int oflag, int mode) +{ + yaffs_Object *obj = NULL; + int handle = -1; + yaffsfs_Handle *h = NULL; + int i; + int fdmtd; + int nBlocks; + char mtdpath[200]; + struct mtdpriv *priv; + sprintf(mtdpath,"/dev/%s\n",path+11); + fdmtd=open(mtdpath,O_RDWR); + priv=(void *)_file[fdmtd].data; + + { + memset(&gdev,0,sizeof(yaffs_Device)); + + //Now initialise soc' Nand Flash: mtd,nand_chip + + nBlocks = priv->open_size/priv->file->mtd->erasesize; + gdev.genericDevice = priv->file->mtd; + gdev.startBlock = (priv->open_offset+priv->file->part_offset)/priv->file->mtd->erasesize; + gdev.endBlock = gdev.startBlock+nBlocks - 1; + gdev.nChunksPerBlock = priv->file->mtd->erasesize/priv->file->mtd->writesize; + gdev.totalBytesPerChunk = priv->file->mtd->writesize; + gdev.nReservedBlocks = 5; + gdev.nShortOpCaches = 0; + gdev.name = priv->file->mtd->name; + + gdev.writeChunkWithTagsToNAND = nandmtd2_WriteChunkWithTagsToNAND; + gdev.readChunkWithTagsFromNAND = nandmtd2_ReadChunkWithTagsFromNAND; + gdev.markNANDBlockBad = nandmtd2_MarkNANDBlockBad; + gdev.queryNANDBlock = nandmtd2_QueryNANDBlock; + gdev.spareBuffer = malloc(priv->file->mtd->oobsize); + gdev.isYaffs2 = 1; + + gdev.eraseBlockInNAND = nandmtd2_EraseBlockInNAND; + gdev.initialiseNAND = nandmtd2_InitialiseNAND; + + //use checkpoint to mount yaffs + gdev.skipCheckpointRead = 0; + gdev.skipCheckpointWrite = 0; + } + close(fdmtd); + + + + path += 11; + + //get rid of /dev/yaffs@mtdblock0/vmlinx to /vmlinux + while(*path && *path!='/') path++; + if(!*path) + { + printf("error path!\n"); + return -1; + } + + //if(gdev.endBlock <= 0) + { + if(yaffs_initialise()==-1) + { + printf("Yaffs2 initialise failed!\n"); + return -1; + } + } + + handle = yaffsfs_GetHandle(); + if(handle >= 0) + { + h = yaffsfs_GetHandlePointer(handle); + + // try to find the exisiting object + obj = yaffsfs_FindObject(NULL,path,0); + if(obj && obj->variantType != YAFFS_OBJECT_TYPE_FILE) + obj = NULL; + if(obj) + { + h->obj = obj; + h->inUse = 1; + h->readOnly = (oflag & (O_WRONLY | O_RDWR)) ? 0 : 1; + h->append = (oflag & O_APPEND) ? 1 : 0; + h->exclusive = (oflag & O_EXCL) ? 1 : 0; + h->position = 0; + + obj->inUse++; + } + else + { + yaffsfs_PutHandle(handle); + handle = -1; + return 0; + } + } + + if(handle >= 0) + { + _file[fd].valid = 1; + _file[fd].data = (void *)h; + } + return fd; +} + + + +int yaffs_close(int fd) +{ + //yaffsfs_PutHandle(fd); + yaffsfs_Handle *h; + + h = (struct yaffs_Handle *)_file[fd].data; + if(h) + { + h->inUse=0; + h->obj=NULL; + } + return 0; +} + diff --git a/sys/dev/nand/fcr-nand.c b/sys/dev/nand/fcr-nand.c index 5e604709..a3e7738e 100644 --- a/sys/dev/nand/fcr-nand.c +++ b/sys/dev/nand/fcr-nand.c @@ -119,12 +119,11 @@ int fcr_soc_nand_init(void) /* Register the partitions */ // add_mtd_partitions(fcr_soc_mtd, partition_info, NUM_PARTITIONS); add_mtd_device(fcr_soc_mtd,0,0,"total flash"); - add_mtd_device(fcr_soc_mtd,0,12*0x100000,"kernel"); - add_mtd_device(fcr_soc_mtd,12*0x100000,(128-12)*0x1000000,"system"); - add_mtd_device(fcr_soc_mtd,0x80*0x100000,0x10*0x1000000,"kernel1"); - add_mtd_device(fcr_soc_mtd,0x90*0x100000,0x10*0x1000000,"kernel2"); - add_mtd_device(fcr_soc_mtd,0xa0*0x100000,0x10*0x1000000,"initrd"); - add_mtd_device(fcr_soc_mtd,0xb0*0x100000,0x50*0x1000000,"others"); + add_mtd_device(fcr_soc_mtd,0,0x02000000,"kernel"); + add_mtd_device(fcr_soc_mtd,0x02000000,0x04000000,"squashfs"); + add_mtd_device(fcr_soc_mtd,0x02000000+0x04000000,0x04000000,"jffs2"); + add_mtd_device(fcr_soc_mtd,0x02000000+0x04000000+0x04000000,0x04000000,"yaffs2"); + add_mtd_device(fcr_soc_mtd,0x02000000+0x04000000+0x04000000+0x04000000,0x02000000,"cramfs"); /* Return happy */ return 0; From b2dd48246f74c038bab03c5ed6fab73fde79e27c Mon Sep 17 00:00:00 2001 From: root Date: Sat, 21 Mar 2009 17:40:35 +0800 Subject: [PATCH 6/7] fix d,m command for memory read. --- pmon/cmds/mycmd.c | 73 ++++++++++++++++++++--------------------------- zloader/mymake | 2 +- 2 files changed, 32 insertions(+), 43 deletions(-) diff --git a/pmon/cmds/mycmd.c b/pmon/cmds/mycmd.c index b4d6cb9c..51338f1c 100644 --- a/pmon/cmds/mycmd.c +++ b/pmon/cmds/mycmd.c @@ -332,54 +332,53 @@ case 8:break; return -1; } +#if __mips >= 3 +#define MYASM asm +#define MYC(...) +#else +#define MYASM(...) +#define MYC(x) x +#endif static int __syscall1(int type,long long addr,union commondata *mydata) { union { -long long ll; -int l[2]; +unsigned long long ll; +unsigned int l[2]; } a; a.ll=addr; - +/* + * use lw to load l[2],will make high bit extension. + */ switch(type) { case 1: - //mydata->data1=*(volatile char *)addr;break; - asm("dsll32 %2,%2,0;or %1,%2;lbu $2,(%1);" \ + MYC(mydata->data1=*(volatile char *)addr;); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lbu $2,(%1);" \ "sb $2,(%0);" \ ::"r"(&mydata->data1),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 2: - //mydata->data2=*(volatile short *)addr;break; - asm("dsll32 %2,%2,0;or %1,%2;lhu $2,(%1);" \ + MYC(mydata->data2=*(volatile short *)addr;); + asm("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lhu $2,(%1);" \ "sh $2,(%0);" \ ::"r"(&mydata->data2),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 4: -#if __mips >= 3 - //mydata->data4=*(volatile int *)addr;break; - asm("dsll32 %2,%2,0;or %1,%2;lwu $2,(%1);" \ + MYC(mydata->data4=*(volatile int *)addr;); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lwu $2,(%1);" \ "sw $2,(%0);" \ ::"r"(&mydata->data4),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); -#else - asm("lw $2,(%1); - sw $2,(%0) - " - ::"r"(&mydata->data4),"r"(addr) - :"$2" - ); -#endif break; case 8: - // mydata->data8[0]=*(volatile int *)addr;mydata->data8[1]=*(volatile int *)(addr+4); - //*(long long *)mydata->data8=*(volatile long long *)addr; - asm("dsll32 %2,%2,0;or %1,%2;ld $2,(%1);" \ + MYC( mydata->data8[0]=*(volatile int *)addr;mydata->data8[1]=*(volatile int *)(addr+4);) + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;ld $2,(%1);" \ "sd $2,(%0);" \ ::"r"(mydata->data8),"r"(a.l[0]),"r"(a.l[1]) :"$2" @@ -392,53 +391,43 @@ return 0; static int __syscall2(int type,long long addr,union commondata *mydata) { union { -long long ll; -int l[2]; +unsigned long long ll; +unsigned int l[2]; } a; a.ll=addr; switch(type) { case 1: - //*(volatile char *)addr=mydata->data1;break; - asm("dsll32 %2,%2,0;or %1,%2;lbu $2,(%0);" \ + MYC(*(volatile char *)addr=mydata->data1;); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lbu $2,(%0);" \ "sb $2,(%1);" \ ::"r"(&mydata->data1),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 2: - //*(volatile short *)addr=mydata->data2;break; - asm("dsll32 %2,%2,0;or %1,%2;lhu $2,(%0);" \ + MYC(*(volatile short *)addr=mydata->data2;); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lhu $2,(%0);" \ "sh $2,(%1);" \ ::"r"(&mydata->data2),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); break; case 4: - //*(volatile int *)addr=mydata->data4;break; -#if __mips >= 3 - asm("lwu $2,(%0);" \ - "sw $2,(%1);" \ - ::"r"(&mydata->data4),"r"(addr) - :"$2" - ); -#else - asm("lw $2,(%0);" \ + MYC(*(volatile int *)addr=mydata->data4;); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;lwu $2,(%0);" \ "sw $2,(%1);" \ - ::"r"(&mydata->data4),"r"(addr) + ::"r"(&mydata->data2),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); -#endif - break; case 8: - asm("dsll32 %2,%2,0;or %1,%2;ld $2,(%0);" \ + MYC(*(volatile int *)addr=mydata->data8[0];*(volatile int *)(addr+4)=mydata->data8[1];); + MYASM("dsll32 %1,%1,0;dsrl32 %1,%1,0;dsll32 %2,%2,0;or %1,%2;ld $2,(%0);" \ "sd $2,(%1);" \ ::"r"(mydata->data8),"r"(a.l[0]),"r"(a.l[1]) :"$2" ); - //*(volatile int *)addr=mydata->data8[0];*(volatile int *)(addr+4)=mydata->data8[1]; - //*(volatile long long *)addr=*(volatile long long *)mydata->data8; break; } return 0; diff --git a/zloader/mymake b/zloader/mymake index d9e5eb4b..06258a0c 100755 --- a/zloader/mymake +++ b/zloader/mymake @@ -9,7 +9,7 @@ close F; shift @ARGV; print STDERR "$cmd\n"; system qq($cmd); -system qq(cp $obj /tmp/tmp.o;mips-elf-objdump -Slz /tmp/tmp.o >/tmp/tmp.S); +system qq(cp $obj /tmp/tmp.o;mipsel-linux-objdump -Slz /tmp/tmp.o >/tmp/tmp.S); $cmd=~s/\s-c\s/ @ARGV -E -C /; print STDERR "$cmd\n"; system($cmd); From 01a8d317530477b1e9d74aa009275b818d539b7e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 13 Apr 2009 16:44:29 +0800 Subject: [PATCH 7/7] sata0 and sata1 work well --- Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 | 3 + sys/dev/pci/atpsata.c | 1416 +---------------- sys/dev/pci/files.pci | 4 + sys/dev/pci/sata.c | 1468 ++++++++++++++++++ 4 files changed, 1496 insertions(+), 1395 deletions(-) mode change 100755 => 100644 sys/dev/pci/atpsata.c create mode 100644 sys/dev/pci/sata.c diff --git a/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 b/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 index 8b5b2761..be2e7836 100644 --- a/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 +++ b/Targets/Bonito2fdev/conf/Bonito.2fdev.cs5536 @@ -155,6 +155,9 @@ select mod_usb_kbd #### IDE controllers pciide* at pci ? dev ? function ? flags 0x0000 +atp* at pci? dev ? function ? #sata atp8620 +wd* at atp? channel ? drive ? flags 0x0000 +sata* at atp? #### IDE hard drives wd* at pciide? channel ? drive ? flags 0x0000 diff --git a/sys/dev/pci/atpsata.c b/sys/dev/pci/atpsata.c old mode 100755 new mode 100644 index 1431191f..eab584b4 --- a/sys/dev/pci/atpsata.c +++ b/sys/dev/pci/atpsata.c @@ -56,10 +56,6 @@ #include - -#include /* for vtophys */ -#include /* for vtophys */ -#include /* for vtophys */ #include /* for DELAY */ #include @@ -83,1096 +79,22 @@ #include #include #include -//#include #include #include "sata_8620.h" -#define CFG_SATA_MAX_DEVICE 1 - -extern block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; -#define CFG_HZ 660000000 -#define debug(fmt,args...) printf(fmt ,##args) -extern vm_offset_t _pci_dmamap __P((vm_offset_t, u32)); -#define vtophys(p) _pci_dmamap((vm_offset_t)p, 1) -#define VA_TO_PA(x) UNCACHED_TO_PHYS(x) -//#define UNCACHED_TO_PHYS(x) ((unsigned)(x) & 0x1fffffff) -//#define PHYS_TO_UNCACHED(x) ((unsigned)(x)|0xa0000000) - -#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) -#define MY_MALLOC 0 -#define MY_SATA 1 - -#define SATADEBUG -//printf("SATADEBUG %s : %d \n",__FUNCTION__,__LINE__); - /* to get some global routines like printf */ #include "etherboot.h" /* to get the interface to the body of the program */ -static int ioaddr; -static int fault_timeout; +#define myudelay delay static int atp_match (struct device *, void *, void *); static void atp_attach (struct device *, struct device *, void *); -atp_sata_t *mysata; -#define myudelay delay -static inline void mdelay(u64 msec) -{ - u64 i; - for (i = 0; i < msec; i++) - myudelay(1000); -} - -static inline void sdelay(u64 sec) -{ - u64 i; - for (i = 0; i < sec; i++) - mdelay(1000); -} -static inline void sync(void) -{ -} - -#if 1 -u32 strnlen(const char* s, u32 count) -{ - const char *sc; - for(sc = s;count -- && *sc != '\0';++sc) - { - } - return (sc -s); -} -u64 ata_id_n_sectors(u16 *id) -{ - if (ata_id_has_lba(id)) { - if (ata_id_has_lba48(id)) - return ata_id_u64(id, ATA_ID_LBA48_SECTORS); - else - return ata_id_u32(id, ATA_ID_LBA_SECTORS); - } else { - return 0; - } -} - -u32 ata_dev_classify(u32 sig) -{ - u8 lbam, lbah; - - lbam = (sig >> 16) & 0xff; - lbah = (sig >> 24) & 0xff; - - if (((lbam == 0) && (lbah == 0)) || - ((lbam == 0x3c) && (lbah == 0xc3))) - return ATA_DEV_ATA; - - if ((lbam == 0x14) && (lbah == 0xeb)) - return ATA_DEV_ATAPI; - - if ((lbam == 0x69) && (lbah == 0x96)) - return ATA_DEV_PMP; - - return ATA_DEV_UNKNOWN; -} - - void ata_id_string(const u16 *id, unsigned char *s, unsigned int ofs, unsigned int len) -{ - unsigned int c; - - while (len > 0) { - c = id[ofs] >> 8; - *s = c; - s++; - - c = id[ofs] & 0xff; - *s = c; - s++; - - ofs++; - len -= 2; - } -} - -void ata_id_c_string(const u16 *id, unsigned char *s,unsigned int ofs, unsigned int len) -{ - unsigned char *p; - - ata_id_string(id, s, ofs, len - 1); - - p = s + strnlen((char *)s, len - 1); - while (p > s && p[-1] == ' ') - p--; - *p = '\0'; -} - -void ata_dump_id(u16 *id) -{ - unsigned char serial[ATA_ID_SERNO_LEN + 1]; - unsigned char firmware[ATA_ID_FW_REV_LEN + 1]; - unsigned char product[ATA_ID_PROD_LEN + 1]; - u64 n_sectors; - - /* Serial number */ - ata_id_c_string(id, serial, ATA_ID_SERNO, sizeof(serial)); - printf("S/N: %s\n\r", serial); - - /* Firmware version */ - ata_id_c_string(id, firmware, ATA_ID_FW_REV, sizeof(firmware)); - printf("Firmware version: %s\n\r", firmware); - - /* Product model */ - ata_id_c_string(id, product, ATA_ID_PROD, sizeof(product)); - printf("Product model number: %s\n\r", product); - - /* Total sectors of device */ - n_sectors = ata_id_n_sectors(id); - printf("Capablity: %d sectors\n\r", n_sectors); - - printf ("id[49]: capabilities = 0x%04x\n" - "id[53]: field valid = 0x%04x\n" - "id[63]: mwdma = 0x%04x\n" - "id[64]: pio = 0x%04x\n" - "id[75]: queue depth = 0x%04x\n", - id[49], - id[53], - id[63], - id[64], - id[75]); - - printf ("id[76]: sata capablity = 0x%04x\n" - "id[78]: sata features supported = 0x%04x\n" - "id[79]: sata features enable = 0x%04x\n", - id[76], - id[78], - id[79]); - - printf ("id[80]: major version = 0x%04x\n" - "id[81]: minor version = 0x%04x\n" - "id[82]: command set supported 1 = 0x%04x\n" - "id[83]: command set supported 2 = 0x%04x\n" - "id[84]: command set extension = 0x%04x\n", - id[80], - id[81], - id[82], - id[83], - id[84]); - printf ("id[85]: command set enable 1 = 0x%04x\n" - "id[86]: command set enable 2 = 0x%04x\n" - "id[87]: command set default = 0x%04x\n" - "id[88]: udma = 0x%04x\n" - "id[93]: hardware reset result = 0x%04x\n", - id[85], - id[86], - id[87], - id[88], - id[93]); -} - -void ata_swap_buf_le16(u16 *buf, unsigned int buf_words) -{ - unsigned int i; - - for (i = 0; i < buf_words; i++) - // buf[i] = le16_to_cpu(buf[i]); - buf[i] = (u16)buf[i]; -} - -#endif - -static int ata_wait_register(volatile unsigned *addr, u32 mask, - u32 val, u32 timeout_msec) -{ - int i; - u32 temp; - - for (i = 0; (((temp = inl(addr)) & mask) != val) - && i < timeout_msec; i++) - mdelay(1); - return (i < timeout_msec) ? 0 : -1; -} - -void dump_print(u32 reg,u32 num) -{ - u32 i; - u32 j = 0; - printf("\n\n%08lx to %08lx shown below\n",reg,reg + num); - for(i = reg;i < reg + num;i+=4) - { - if(j % 4 == 0) - printf("\n%08lx\t",i); - printf("%08lx\t",inl(i)); - j ++; - } -} -int init_sata(int dev,u32 reg) -{ - u32 length, align; - cmd_hdr_tbl_t *cmd_hdr; - T_ReceiveFIS *receive_fis; - u32 cda; - u32 iog_base; - u32 i; - u32 dma_cmdhdr_addr; - u32 dma_receive_fis; - int device = 13,func = 0; - atp_sata_t *sata; - if (dev < 0 || dev > (CFG_SATA_MAX_DEVICE - 1)) - { - printf("the sata index %d is out of ranges\n\r", dev); - return -1; - } - /* Allocate SATA device driver struct */ - #if MY_MALLOC - sata = (atp_sata_t *)malloc(sizeof(atp_sata_t)); - #else - sata = (atp_sata_t *)malloc(sizeof(atp_sata_t), M_DEVBUF, M_NOWAIT); - #endif - if (!sata) - { - printf("alloc the sata device struct failed\n\r"); - return -1; - } - /* Zero all of the device driver struct */ - memset((void *)sata, 0, sizeof(atp_sata_t)); - - /* Save the private struct to block device struct */ - sata_dev_desc[dev].priv = (void *)sata; - sprintf(sata->name, "SATA%d", dev); - - /* Set the controller register base address to device struct */ - sata->reg_base = reg; - iog_base = reg + 0x100; - - /* Allocate the command header table, 1024 bytes aligned */ - length = sizeof(struct cmd_hdr_tbl); - align = SATA_HC_CMD_HDR_TBL_ALIGN; - #if MY_MALLOC - sata->cmd_hdr_tbl_offset = (void *)malloc(length + align); -#else - sata->cmd_hdr_tbl_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); -#endif - if (!sata->cmd_hdr_tbl_offset) - { - printf("alloc the command header failed\n\r"); - return -1; - } - - cmd_hdr = (cmd_hdr_tbl_t *)(((u32)sata->cmd_hdr_tbl_offset + align) & ~(align - 1)); - sata->cmd_hdr = cmd_hdr; - - /* Zero all of the command header table */ - memset((void *)sata->cmd_hdr_tbl_offset, 0, length + align); - - pci_sync_cache(0,sata->cmd_hdr_tbl_offset,length + align,1); - - - /* Allocate receive fis */ - length = sizeof(*receive_fis); - align = 256; - #if MY_MALLOC - sata->receive_fis_offset = (void *)malloc(length + align); -#else - sata->receive_fis_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); -#endif - if (!sata->receive_fis_offset) - { - printf("alloc the receive fis failed\n\r"); - return -1; - } - receive_fis = (T_ReceiveFIS*)(((u32)sata->receive_fis_offset + align) - & ~(align - 1)); - sata->receive_fis = receive_fis; - /* Zero all of receive fis */ - memset((void *)sata->receive_fis_offset, 0, length + align); - pci_sync_cache(0,sata->receive_fis_offset,length + align,0); - - /* Allocate command descriptor for all command */ - length = sizeof(struct cmd_desc) * SATA_HC_MAX_CMD; - align = SATA_HC_CMD_DESC_ALIGN; -#if MY_MALLOC - sata->cmd_desc_offset = (void *)malloc(length + align); -#else - sata->cmd_desc_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); -#endif - if (!sata->cmd_desc_offset) - { - printf("alloc the command descriptor failed\n\r"); - return -1; - } - sata->cmd_desc = (cmd_desc_t *)(((u32)sata->cmd_desc_offset + align) - & ~(align - 1)); - /* Zero all of command descriptor */ - memset((void *)sata->cmd_desc_offset, 0, length + align); - pci_sync_cache(0,sata->cmd_desc_offset,length + align,1); - /* Link the command descriptor to command header */ - for (i = 0; i < SATA_HC_MAX_CMD; i++) - { - cda = ((u32)sata->cmd_desc + SATA_HC_CMD_DESC_SIZE * i) - & ~(CMD_HDR_CDA_ALIGN - 1); - cmd_hdr->cmd_slot[i].ctba = (u32)(vtophys(cda)); - } - outb(iog_base + 0x0004,0x01);//send COMRESET - while(inb(iog_base + 0x0004) & 0x01) - { - myudelay(10); - } - outb(iog_base + 0x0004,0x0); - /* Set the command header base address to CHBA register to tell DMA */ - dma_cmdhdr_addr = (u32)(vtophys(cmd_hdr & ~0x3ff)); - outl(reg, dma_cmdhdr_addr); - /*Set the CFIS to chip*/ - dma_receive_fis = (u32)(vtophys(receive_fis & ~0xff)); - outl(reg + 0x0004,0); - outl(reg + 0x0008,dma_receive_fis); - outl(reg + 0x000c,0); - /*Initialize the SATA channel*/ - outb(reg + 0x002c,0x01); //send COMRESET - mdelay(1); - outb(reg + 0x002c,0x00); - outb(reg + 0x0074,0x04); - outb(reg + 0x0018,0x17); - outl(reg + 0x0014,0); - outl(reg + 0x0030,0xffffffff); - return 0; -} -static int atp_ata_exec_ata_cmd(struct atp_sata *sata, struct cfis *cfis, - int is_ncq, int tag, u8 *buffer, u32 len) -{ - cmd_hdr_entry_t *cmd_hdr; - cmd_desc_t *cmd_desc; - sata_fis_h2d_t *h2d; - prd_entry_t *prde; - u32 dbc; - u32 prde_count; - u32 val32; - u32 buffer_length = len; - u32 reg = sata->reg_base; - u32 ci_map; - u8 status; - u8* dma_buffer; - int is_write; - int i; - dma_buffer = (u8 *)vtophys((u32)buffer); - /* Check xfer length */ - if (len > SATA_HC_MAX_XFER_LEN) - { - printf("max transfer length is 64MB\n\r"); - return 0; - } - - /* Setup the command descriptor */ - cmd_desc = sata->cmd_desc + tag; - - /* Get the pointer cfis of command descriptor */ - h2d = (sata_fis_h2d_t *)cmd_desc->cfis; - - /* Zero the cfis of command descriptor */ - memset((void *)h2d, 0, 64); - - /* Copy the cfis from user to command descriptor */ - h2d->fis_type = cfis->fis_type; - h2d->pm_port_c = cfis->pm_port_c; - h2d->command = cfis->command; - - h2d->features = cfis->features; - h2d->features_exp = cfis->features_exp; - - h2d->lba_low = cfis->lba_low; - h2d->lba_mid = cfis->lba_mid; - h2d->lba_high = cfis->lba_high; - h2d->lba_low_exp = cfis->lba_low_exp; - h2d->lba_mid_exp = cfis->lba_mid_exp; - h2d->lba_high_exp = cfis->lba_high_exp; - - if (!is_ncq) - { - h2d->sector_count = cfis->sector_count; - h2d->sector_count_exp = cfis->sector_count_exp; - } else - { /* NCQ */ - h2d->sector_count = (u8)(tag << 3); - } - - h2d->device = cfis->device; - h2d->control = cfis->control; - h2d->FIS_Flag = 1; - - /* Setup the PRD table */ - prde = (prd_entry_t *)cmd_desc->prdt; - memset((void *)prde, 0, sizeof(prd_entry_t) * 24); - prde_count = 0; - for (i = 0; i < SATA_HC_MAX_PRD_DIRECT; i++) - { - if (!len) - break; - prde->dba_u = 0; - if (len < PRD_ENTRY_MAX_XFER_SZ) - { - dbc = 0x80000000 | len; - dbc = len; - prde->dba = (u32)dma_buffer; - prde->dbc = (u32)(dbc); - prde_count++; - prde++; - len=0; - break; - } else - { - dbc = PRD_ENTRY_MAX_XFER_SZ; /* 4M bytes */ - prde->dba = (u32)dma_buffer; - prde->dbc = (u32)(dbc); - dma_buffer += PRD_ENTRY_MAX_XFER_SZ; - len -= PRD_ENTRY_MAX_XFER_SZ; - prde_count++; - prde++; - } - } - - if(len)printf("left %d\n",len); - - if(cfis->command == 0x61 || cfis->command == 0x35) - is_write = 1; - else if(cfis->command == 0x60 || cfis->command == 0x25) - is_write = 0; - /* Setup the command slot of cmd hdr */ - cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; - memset((void*)cmd_hdr,0,0x20); - cmd_hdr->ctba = (u32)(vtophys((u32)cmd_desc)); - cmd_hdr->ctba_u = 0; - cmd_hdr->CommandFISLen = 5; - cmd_hdr->AtapiPioFIS = 0; - cmd_hdr->PreFetchAble = 0; - cmd_hdr->Reset = 0; - cmd_hdr->Bist = 0; - cmd_hdr->ClearBusy = 0; - cmd_hdr->Reserved0 = 0; - cmd_hdr->PortMultiplier = 0; //not sure - cmd_hdr->prdtl = 0; - - cmd_hdr->prdbc = 0; - - cmd_hdr->ReadWrite = is_write; - - /* Make sure cmd desc and cmd slot valid before commmand issue */ - sync(); - - status = inb(reg + 0x0074) & 0xFE; - ci_map = 0x00000001; - ci_map <<= tag; - if (is_ncq) - { - status |= 0x01; // enable NCQ bit - outb(reg + 0x0074,status); - outl(reg + 0x0034,ci_map); - } - else - { - outb(reg + 0x0074,status); - } - pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); - pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); - pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); - if(buffer && buffer_length)pci_sync_cache(0,buffer,buffer_length,is_write); - outb(reg +0x0074,inb(reg +0x0074)&0xfe); - outl(reg + 0x0038,ci_map); - /* Wait command completed for 1s */ -/* if (ata_wait_register(reg + 0x0038, ci_map, ci_map, 1000)) - { - if (!is_ncq) - printf("\n\rNon-NCQ command time out\n\r"); - else - printf("\n\rNCQ command time out\n\r"); - } - */ - - for(i = 0;i < 1000;i ++) - { - if((inl(reg + 0x0038) & ci_map) == 0) - { - break; - } - //zgj myudelay(1000); - myudelay(2000); - } - if(i >= 1000) - { - fault_timeout ++; - printf("\n0x0038 not cleared,time out\n"); - return -2; - } - while(inl(reg + 0x0010)==0xffffffff) - { - myudelay(100); - } - for(i = 0;i < 1000;i ++) - { - if(inb(reg + 0x0010) & 0x03) - { - break; - } - myudelay(1000); - } - if(i >= 1000) - { - printf("\nreceive no rfis,time out\n"); - return -1; - } - - return len; -} - -static int atp_ata_exec_reset_cmd(struct atp_sata *sata, struct cfis *cfis, - int tag, u8 *buffer, u32 len) -{ - return 0; -} - -static int atp_sata_exec_cmd(struct atp_sata *sata, struct cfis *cfis, - enum cmd_type command_type, int tag, u8 *buffer, u32 len) -{ - int rc; - - if (tag > SATA_HC_MAX_CMD || tag < 0) - { - printf("tag is out of range, tag=\n\r", tag); - return -1; - } - - switch (command_type) - { - case CMD_ATA: - rc = atp_ata_exec_ata_cmd(sata, cfis, 0, tag, buffer, len); - return rc; - case CMD_RESET: - rc = atp_ata_exec_reset_cmd(sata, cfis, tag, buffer, len); - return rc; - case CMD_NCQ: - rc = atp_ata_exec_ata_cmd(sata, cfis, 1, tag, buffer, len); - return rc; - case CMD_ATAPI: - case CMD_VENDOR_BIST: - case CMD_BIST: - printf("not support now\n\r"); - return -1; - default: - break; - } - - return -1; -} - -static void atp_sata_identify(int dev, u16 *id,int tag) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - cmd_hdr_entry_t *cmd_hdr; - cmd_desc_t *cmd_desc; - prd_entry_t *prde; - u32 ci_map; - u8 status74; - u8 Error_status; - u32 dma_buffer; - int i; - status74 = inb(sata->reg_base + 0x0074); - cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; - dma_buffer = vtophys((u32)id); - cmd_desc = sata->cmd_desc + tag; - ((cfis_t*)(cmd_desc->cfis))->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - ((cfis_t*)(cmd_desc->cfis))->FIS_Flag = 1; - ((cfis_t*)(cmd_desc->cfis))->pm_port_c = 0x0; - ((cfis_t*)(cmd_desc->cfis))->device = 0xe0; - ((cfis_t*)(cmd_desc->cfis))->command = ATA_CMD_ID_ATA; - - prde = (prd_entry_t*)cmd_desc->prdt; - memset((void*)prde,0,sizeof(prd_entry_t)); - prde->dba = vtophys((u32)id); - prde->dba_u = 0; - prde->dbc = 0x80000200; - - cmd_hdr->PortMultiplier = 0x0; - cmd_hdr->CommandFISLen = 0x05; - cmd_hdr->prdtl = 0; - cmd_hdr->prdbc = 0; - - ci_map = 0x00000001 << tag; - - pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); - pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); - pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); - pci_sync_cache(0,id,ATA_ID_WORDS * 2,0); - outl(sata->reg_base + 0x0038,ci_map); - for (i = 0 ; i < 1000 ; i++) - { - // wait CI bit clear - if ((inl(sata->reg_base + 0x0038) & ci_map) == 0) - { - // CI bit to be clear - break; - } - myudelay(1000); - } - if (i >= 1000) - { - fault_timeout ++; - printf("\n0x0038 not cleared,time out\n"); - // time out - outb(sata->reg_base + 0x0018,0x16); - outb(sata->reg_base + 0x0018,0x17); - outb(sata->reg_base + 0x0074,status74); // restore Reg74 - return; - } - for (i = 0 ; i < 1000 ; i++) - { - //wait 1s for D2H/PIO FIS - if (inb(sata->reg_base + 0x0010) & 0x03) - { - // got D2H register FIS/ got PIO setup FIS - break; - } - myudelay(1000); - } - if (i >= 1000) - { - printf("\nreceive no rfis,time out\n"); - // time out - outb(sata->reg_base + 0x0018,0x16); - outb(sata->reg_base + 0x0018,0x17); - outb(sata->reg_base + 0x0074,status74); // restore Reg74 - return; - } - Error_status = sata->receive_fis->Device2HostFIS.Status; - outb(sata->reg_base + 0x0010,0x03); // clear interrupt - if (Error_status & 0x01) - { - // Identify command error - outb(sata->reg_base + 0x0074,status74); // restore Reg74 - return; - } - -// ata_swap_buf_le16(id, ATA_ID_WORDS); -} - -static void atp_sata_xfer_mode(int dev, u16 *id) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - - sata->pio = id[ATA_ID_PIO_MODES]; - sata->mwdma = id[ATA_ID_MWDMA_MODES]; - sata->udma = id[ATA_ID_UDMA_MODES]; - debug("pio %04x, mwdma %04x, udma %04x\n\r", sata->pio, sata->mwdma, sata->udma); -} - -static void atp_sata_set_features(int dev) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - struct sata_fis_h2d h2d; - struct cfis *cfis; - u8 udma_cap; - - cfis = (struct cfis *)&h2d; - memset((void *)cfis, 0, sizeof(struct cfis)); - - cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - cfis->pm_port_c = 0x0; /* is command */ - cfis->command = ATA_CMD_SET_FEATURES; - cfis->features = SETFEATURES_XFER; - - /* First check the device capablity */ - udma_cap = (u8)(sata->udma & 0xff); - debug("udma_cap %02x\n\r", udma_cap); - - if (udma_cap == ATA_UDMA6) - cfis->sector_count = XFER_UDMA_6; - if (udma_cap == ATA_UDMA5) - cfis->sector_count = XFER_UDMA_5; - if (udma_cap == ATA_UDMA4) - cfis->sector_count = XFER_UDMA_4; - if (udma_cap == ATA_UDMA3) - cfis->sector_count = XFER_UDMA_3; - - atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, NULL, 0); -} - -static u32 atp_sata_rw_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - struct sata_fis_h2d h2d; - struct cfis *cfis; - u32 block; - - block = start; - cfis = (struct cfis *)&h2d; - - memset((void *)cfis, 0, sizeof(struct cfis)); - - cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - cfis->pm_port_c = 0x80; /* is command */ - cfis->command = (is_write) ? ATA_CMD_WRITE : ATA_CMD_READ; - cfis->device = ATA_LBA; - - cfis->device |= (block >> 24) & 0xf; - cfis->lba_high = (block >> 16) & 0xff; - cfis->lba_mid = (block >> 8) & 0xff; - cfis->lba_low = block & 0xff; - cfis->sector_count = (u8)(blkcnt & 0xff); - - atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); - return blkcnt; -} - -static u32 atp_sata_rw_cmd_ext(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - struct sata_fis_h2d h2d; - struct cfis *cfis; - u64 block; - - block = (u64)start; - cfis = (struct cfis *)&h2d; - - memset((void *)cfis, 0, sizeof(struct cfis)); - - cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - cfis->pm_port_c = 0x80; /* is command */ - - cfis->command = (is_write) ? ATA_CMD_WRITE_EXT - : ATA_CMD_READ_EXT; - - cfis->lba_high_exp = (block >> 40) & 0xff; - cfis->lba_mid_exp = (block >> 32) & 0xff; - cfis->lba_low_exp = (block >> 24) & 0xff; - cfis->lba_high = (block >> 16) & 0xff; - cfis->lba_mid = (block >> 8) & 0xff; - cfis->lba_low = block & 0xff; - cfis->device = 0xe0; - cfis->sector_count_exp = (blkcnt >> 8) & 0xff; - cfis->sector_count = blkcnt & 0xff; - - atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); - return blkcnt; -} - -u32 atp_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - struct sata_fis_h2d h2d; - struct cfis *cfis; - int ncq_channel; - u64 block; - - if (sata_dev_desc[dev].lba48 != 1) - { - printf("execute FPDMA command on non-LBA48 hard disk\n\r"); - return -1; - } - - block = (u64)start; - cfis = (struct cfis *)&h2d; - - memset((void *)cfis, 0, sizeof(struct cfis)); - - cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - cfis->pm_port_c = 0x80; /* is command */ - - cfis->command = (is_write) ? ATA_CMD_FPDMA_WRITE - : ATA_CMD_FPDMA_READ; - - cfis->lba_high_exp = (block >> 40) & 0xff; - cfis->lba_mid_exp = (block >> 32) & 0xff; - cfis->lba_low_exp = (block >> 24) & 0xff; - cfis->lba_high = (block >> 16) & 0xff; - cfis->lba_mid = (block >> 8) & 0xff; - cfis->lba_low = block & 0xff; - - cfis->device = 0x40; - cfis->features_exp = (blkcnt >> 8) & 0xff; - cfis->features = blkcnt & 0xff; - - if (sata->queue_depth >= SATA_HC_MAX_CMD) - ncq_channel = SATA_HC_MAX_CMD - 1; - else - ncq_channel = sata->queue_depth - 1; - - /* Use the latest queue */ - atp_sata_exec_cmd(sata, cfis, CMD_NCQ, ncq_channel, buffer, ATA_SECT_SIZE * blkcnt); - return blkcnt; -} - - -/* Software reset, set SRST of the Device Control register */ -int atp_sata_software_reset(int dev,int tag) -{ - - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - cmd_hdr_entry_t *cmd_hdr; - cmd_desc_t *cmd_desc; - u32 ci_map; - memset((void *)sata->cmd_desc, 0, 64); - cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; - cmd_desc = sata->cmd_desc + tag; - memset((void*)cmd_hdr,0,0x400); -// sata->cmd_hdr->cmd_slot[tag].PortMultiplier = 0x0f; - cmd_hdr->CommandFISLen = 0x05; - cmd_hdr->ClearBusy = 1; -// cmd_hdr->PortMultiplier = 0x0f; - cmd_hdr->ctba = vtophys((u32)(cmd_desc)); -// ((cfis_t*)(cmd_desc->cfis))->pm_port_c = 0x0f;; - ((cfis_t*)(cmd_desc->cfis))->fis_type = SATA_FIS_TYPE_REGISTER_H2D; - ((cfis_t*)(cmd_desc->cfis))->FIS_Flag = 0; - ((cfis_t*)(cmd_desc->cfis))->control = 0x04; //RST bit =1 - ci_map = 0x00000001 << tag; -SATADEBUG - pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); - pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); - pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); - -// ci_map = 0x00000001 << 7; - outl(sata->reg_base + 0x0038,ci_map); - while (inl(sata->reg_base + 0x0038) & ci_map) - { - myudelay(100); - } - myudelay(10); - - cmd_hdr->ClearBusy = 0; - ((cfis_t*)cmd_desc->cfis)->control = 0; //RST bit = 0 - pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); - pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); - pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); - outl(sata->reg_base + 0x0038,ci_map); - while (inl(sata->reg_base + 0x0038) & ci_map) - { - myudelay(100); - } - myudelay(100); - outb(sata->reg_base + 0x0010,inb(sata->reg_base + 0x0010)); //clear error -SATADEBUG - return 1; -} - -static void atp_sata_init_wcache(int dev, u16 *id) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - - if (ata_id_has_wcache(id) && ata_id_wcache_enabled(id)) - sata->wcache = 1; - if (ata_id_has_flush(id)) - sata->flush = 1; - if (ata_id_has_flush_ext(id)) - sata->flush_ext = 1; -} - - -u32 ata_low_level_rw_lba48(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_write) -{ - u32 start, blks; - u8 *addr; - int max_blks; - - start = blknr; - blks = blkcnt; - addr = (u8 *)buffer; - - max_blks = ATA_MAX_SECTORS_LBA48; - do { - if (blks > max_blks) - { - atp_sata_rw_cmd_ext(dev, start, max_blks, addr, is_write); - start += max_blks; - blks -= max_blks; - addr += ATA_SECT_SIZE * max_blks; - } else - { - atp_sata_rw_cmd_ext(dev, start, blks, addr, is_write); - start += blks; - blks = 0; - addr += ATA_SECT_SIZE * blks; - } - } while (blks != 0); - - return blkcnt; -} - -u32 ata_low_level_rw_lba28(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_write) -{ - u32 start, blks; - u8 *addr; - int max_blks; - - start = blknr; - blks = blkcnt; - addr = (u8 *)buffer; - - max_blks = ATA_MAX_SECTORS; - do { - if (blks > max_blks) - { - atp_sata_rw_cmd(dev, start, max_blks, addr, is_write); - start += max_blks; - blks -= max_blks; - addr += ATA_SECT_SIZE * max_blks; - } else - { - atp_sata_rw_cmd(dev, start, blks, addr, is_write); - start += blks; - blks = 0; - addr += ATA_SECT_SIZE * blks; - } - } while (blks != 0); - - return blkcnt; -} - -/* - * SATA interface between low level driver and command layer - */ -ulong atp_sata_read(int dev, unsigned long blknr, lbaint_t blkcnt, void *buffer) -{ - u32 rc; - if (sata_dev_desc[dev].lba48) - rc = ata_low_level_rw_lba48(dev, blknr, blkcnt, buffer, READ_CMD); - else - rc = ata_low_level_rw_lba28(dev, blknr, blkcnt, buffer, READ_CMD); - return rc; -} - -ulong atp_sata_write(int dev, unsigned long blknr, lbaint_t blkcnt, void *buffer) -{ - u32 rc; - - if (sata_dev_desc[dev].lba48) - { - rc = ata_low_level_rw_lba48(dev, blknr, blkcnt, buffer, WRITE_CMD); - } else - { - rc = ata_low_level_rw_lba28(dev, blknr, blkcnt, buffer, WRITE_CMD); - } - return rc; -} - -int scan_sata(int dev) -{ - atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; - u8 serial[ATA_ID_SERNO_LEN + 1]; - u8 firmware[ATA_ID_FW_REV_LEN + 1]; - u8 product[ATA_ID_PROD_LEN + 1]; - u8 statusX; - u8 status; - u32 signature; - u32 *id; - u64 n_sectors; - u32 reg = sata->reg_base; -// u16 *i; -// u32 j = 0; - int k; -printf("reg = 0x%x \n",reg); - for(k = 0;k < 1000;k++) - { - statusX = (inb(reg + 0x0028) & 0x0F); - if(statusX == 0x03) - { - break; - } - myudelay(1000); - } -printf("statusX = %d, k = %d \n",statusX,k); - if(statusX == 0x03) - { - // physical ready - // ===================================================================== - // clear BUSY & DRQ bit to release channel - // ===================================================================== - status = inb(reg + 0x0018) | 0x08; - outb(reg + 0x0018,status); - while(inb(reg + 0x0018) & 0x08) - { - myudelay(10); - } - if(atp_sata_software_reset(dev,0)) - { - for(k = 0;k < 1000;k++) - { - signature = inl(reg + 0x0024); - if(signature == 0x0101) - { - break; - } - myudelay(1000); - } -printf("signature = 0x%x \n",signature); - if(signature == 0x00000101) - { - - //found ata device - id = (u32 *)malloc((ATA_ID_WORDS * 2), M_DEVBUF, M_NOWAIT); -printf("id = 0x%8x \n",id); - if (!id) - { - printf("id malloc failed\n\r"); - return -1; - } - memset((void*)id,0,0x200); - // pci_sync_cache(0,id,ATA_ID_WORDS * 2,0); - /* Identify device to get information */ - atp_sata_identify(dev, (u16*)id,0); - - outb(reg + 0x0018,0x17); // CLEAR BSY & DRQ - outl(reg + 0x0014,0x00000009); // enable P0IS.SDBS, P0IS.DHRS - outl(reg + 0x0074,0); - statusX = inb(reg + 0x007A) | 0x77; - outb(reg + 0x007A,statusX); - - /* Serial number */ - ata_id_c_string((u16*)id, serial, ATA_ID_SERNO, sizeof(serial)); - memcpy(sata_dev_desc[dev].product, serial, sizeof(serial)); - - /* Firmware version */ - ata_id_c_string((u16*)id, firmware, ATA_ID_FW_REV, sizeof(firmware)); - memcpy(sata_dev_desc[dev].revision, firmware, sizeof(firmware)); - - /* Product model */ - ata_id_c_string((u16*)id, product, ATA_ID_PROD, sizeof(product)); - memcpy(sata_dev_desc[dev].vendor, product, sizeof(product)); - - /* Totoal sectors */ - n_sectors = ata_id_n_sectors((u16*)id); - sata_dev_desc[dev].lba = (u16*)n_sectors; - - /* Check if support LBA48 */ - if (ata_id_has_lba48((u16*)id)) - { - sata_dev_desc[dev].lba48 = 1; - } - - /* Get the NCQ queue depth from device */ -// sata->queue_depth = ata_id_queue_depth((u16*)id); - - /* Get the xfer mode from device */ -// atp_sata_xfer_mode(dev, (u16*)id); - - /* Get the write cache status from device */ -// atp_sata_init_wcache(dev, (u16*)id); - - /* Set the xfer mode to highest speed */ - atp_sata_set_features(dev); - free((void *)id, M_DEVBUF);; - } - } - } - else return -1; - return 0; -} -//#undef malloc - -int atp_sata_initialize(u32 reg); - struct cfattach atp_ca = { sizeof(atp_sata_t),atp_match, atp_attach, }; - -//DV_IFNET means network interface -//defined in sys/dev/device.h struct cfdriver atp_cd = { - NULL, "sata", DV_DISK, + NULL, "atp", DV_DULL, }; - #define PCI_VENDOR_SATA 0x1191 #define PCI_PRODUCT_SATA 0x000d static int atp_match( @@ -1188,7 +110,6 @@ static int atp_match( return 0; } - static void atp_attach(struct device * parent, struct device * self, void *aux) { atp_sata_t *sc = (atp_sata_t * )self; @@ -1198,10 +119,10 @@ static void atp_attach(struct device * parent, struct device * self, void *aux) bus_addr_t iobase; bus_size_t iosize; bus_addr_t ideaddr; - -SATADEBUG - mysata = sc; - + atp_sata_info_t info; + u32 iog_base; + u32 ioaddr; + int i; if (pci_io_find(pc, pa->pa_tag, 0x14, &iobase, &iosize)) { @@ -1227,12 +148,22 @@ SATADEBUG printf(": can't map i/o space\n"); return; } + + iog_base = ioaddr + 0x100; + outb(iog_base + 0x0004,0x01);//send COMRESET + while(inb(iog_base + 0x0004) & 0x01) + { + myudelay(10); + } + outb(iog_base + 0x0004,0x0); + + for(i = 0;i <= 1;i++) + { + info.sata_reg_base = ioaddr + i * 0x80; + info.flags = i; + config_found(self,(void *)&info,NULL); + } -SATADEBUG - printf("\natp8620 sata iobase =%8x\n", ioaddr); - if(atp_sata_initialize(ioaddr)<0) - sc->sc_wdcdev.sc_dev.dv_class=DV_DULL; - //sc->sc_wdcdev.cap |= WDC_CAPABILITY_DMA; sc->sc_wdcdev.PIO_cap = 0; sc->sc_wdcdev.DMA_cap = 0; sc->sc_wdcdev.channels = sc->wdc_chanarray; @@ -1257,309 +188,4 @@ SATADEBUG sc->wdc_channel.data32ioh = sc->wdc_channel.cmd_ioh; wdcattach(sc->wdc_chanarray[0]); -SATADEBUG -} - - -int curr_device = -1; -block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; - - void init_part (block_dev_desc_t* dev_desc) -{ - -} - - int atp_sata_initialize(u32 reg) -{ - int rc; - int i; -SATADEBUG - for (i = 0; i < CFG_SATA_MAX_DEVICE; i++) { - memset(&sata_dev_desc[i], 0, sizeof(struct block_dev_desc)); - sata_dev_desc[i].if_type = IF_TYPE_SATA; - sata_dev_desc[i].dev = i; - sata_dev_desc[i].part_type = PART_TYPE_UNKNOWN; - sata_dev_desc[i].type = DEV_TYPE_HARDDISK; - sata_dev_desc[i].lba = 0; - sata_dev_desc[i].blksz = 512; - sata_dev_desc[i].block_read = atp_sata_read; - sata_dev_desc[i].block_write = atp_sata_write; - -SATADEBUG - rc = init_sata(i,reg); -SATADEBUG - rc = scan_sata(i); -SATADEBUG - if ((sata_dev_desc[i].lba > 0) && (sata_dev_desc[i].blksz > 0)) - init_part(&sata_dev_desc[i]); - - } - curr_device = 0; - return rc; -} - -block_dev_desc_t *sata_get_dev(int dev) -{ - return (dev < CFG_SATA_MAX_DEVICE) ? &sata_dev_desc[dev] : NULL; -} - -//////////////////satafs////////////////// -/* - * Supported paths: - * /dev/sata - */ -#include -#include -#include -#include -#include -#undef _KERNEL -#include - -block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; - -struct atp_sata_softc { - /* General disk infos */ - struct device sc_dev; - int bs,count; -}; -#define atp_sata_lookup(dev) (struct atp_sata_softc *)device_lookup(&atp_cd, minor(dev)) - -void atp_sata_strategy(struct buf *bp) -{ - struct atp_sata_softc *priv; - unsigned int blkno, blkcnt; - int ret ; - - priv=atp_sata_lookup(bp->b_dev); - - blkno = bp->b_blkno; - - blkno = blkno /(priv->bs/DEV_BSIZE); - blkcnt = howmany(bp->b_bcount, priv->bs); - - /* Valid request? */ - if (bp->b_blkno < 0 || - (bp->b_bcount % priv->bs) != 0 || - (bp->b_bcount / priv->bs) >= (1 << NBBY)) { - bp->b_error = EINVAL; - printf("Invalid request \n"); - goto bad; - } - - /* If it's a null transfer, return immediately. */ - if (bp->b_bcount == 0) - goto done; - - if(bp->b_flags & B_READ){ - fault_timeout = 0; - ret=atp_sata_read(minor(bp->b_dev),blkno,blkcnt,bp->b_data); - if(ret != blkcnt||fault_timeout) - bp->b_flags |= B_ERROR; - dotik(30000, 0); - } - else - { - fault_timeout = 0; - ret=atp_sata_write(minor(bp->b_dev),blkno,blkcnt,bp->b_data); - if(ret != blkcnt||fault_timeout) - bp->b_flags |= B_ERROR; - dotik(30000, 0); - } -done: - biodone(bp); - return; -bad: - bp->b_flags |= B_ERROR; - biodone(bp); -} - - -int atp_open( - dev_t dev, - int flag, int fmt, - struct proc *p) -{ -char sata_cmd[0x200]; -char *sata_env; -struct atp_sata_softc *priv; -priv=atp_sata_lookup(dev); -if(!priv)return -1; -priv->bs=ATA_SECT_SIZE; -priv->count=-1; -return 0; -} - - -int -atp_close( dev_t dev, - int flag, int fmt, - struct proc *p) -{ - return 0; -} - -int -atp_read( - dev_t dev, - struct uio *uio, - int flags) -{ - return physio(atp_sata_strategy, NULL, dev, B_READ, minphys, uio); } - -int -atp_write( - dev_t dev, - struct uio *uio, - int flags) -{ - return (physio(atp_sata_strategy, NULL, dev, B_WRITE, minphys, uio)); -} - -///////////////////satafs end////////////////////// - int cmd_sata_atp(int argc, char *argv[]) -{ - int rc = 0; - int i=0; - switch (argc) { - case 0: - case 1: - printf("Hello Sata!!!\n"); - return 1; - case 2: - if (strncmp(argv[1],"inf", 3) == 0) { - int i; - printf("\n"); - for (i = 0; i < CFG_SATA_MAX_DEVICE; ++i) { - if (sata_dev_desc[i].type == DEV_TYPE_UNKNOWN) - { - printf("sata_dev_desc[%d].type = %d\n",i,sata_dev_desc[i].type); - continue; - } - printf ("SATA device %d:\n", i); - } - return 0; - } else if (strncmp(argv[1],"dev", 3) == 0) { - if ((curr_device < 0) || (curr_device >= CFG_SATA_MAX_DEVICE)) { - printf("dev-curr_device=%d\n",curr_device); - printf("no SATA devices available\n"); - return 1; - } - printf("SATA device %d:\n", curr_device); - return 0; - } else if (strncmp(argv[1],"part",4) == 0) { - int dev, ok; - - for (ok = 0, dev = 0; dev < CFG_SATA_MAX_DEVICE; ++dev) { - if (sata_dev_desc[dev].part_type != PART_TYPE_UNKNOWN) { - ++ok; - } - } - if (!ok) { - printf("\nno SATA devices available\n"); - rc ++; - } - return rc; - } - return 1; - case 3: - if (strncmp(argv[1], "dev", 3) == 0) { - int dev = (int)strtoul(argv[2], NULL, 10); - - printf("SATA device %d:\n", dev); - if (dev >= CFG_SATA_MAX_DEVICE) { - printf ("unknown device\n"); - return 1; - } - - if (sata_dev_desc[dev].type == DEV_TYPE_UNKNOWN) - return 1; - - curr_device = dev; - - printf("... is now current device\n"); - - return 0; - } else if (strncmp(argv[1], "part", 4) == 0) { - int dev = (int)strtoul(argv[2], NULL, 10); - - if (sata_dev_desc[dev].part_type != PART_TYPE_UNKNOWN) { - } else { - printf("\nSATA device %d not available\n", dev); - rc = 1; - } - return rc; - } - return 1; - - default: /* at least 4 args */ - if (strcmp(argv[1], "read") == 0) { - ulong addr = strtoul(argv[2], NULL, 16); - ulong cnt = strtoul(argv[4], NULL, 16); - ulong n; - lbaint_t blk = strtoul(argv[3], NULL, 16); - - printf("\nSATA read: device %d block # %ld, count %ld ... ", - curr_device, blk, cnt); - - n = atp_sata_read(curr_device, blk, cnt, (u32 *)addr); - printf("the buffer address is 0x%x\n",addr); - for(i=0;i + * + * This program is free software; you can redistribute it and/or + * modify it 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; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ +#define DEBUG_RX +#include "bpfilter.h" +#include +#include +#include +#include +#include +#include +#include + +#include + +#if defined(__NetBSD__) || defined(__OpenBSD__) + +#include +#include +#include + + +#if defined(__OpenBSD__) +#endif + +#include + +#include +#include +#include + + +#include +#include +#include + +#include + +#else /* __FreeBSD__ */ + +#include + + +#include /* for vtophys */ +#include /* for vtophys */ +#include /* for vtophys */ +#include /* for DELAY */ + +#include + +#endif /* __NetBSD__ || __OpenBSD__ */ + +#if NGZIP > 0 +#include +#endif /* NGZIP */ + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include "sata_8620.h" + +#define CFG_SATA_MAX_DEVICE 2 +extern block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; +#define CFG_HZ 660000000 +#define debug(fmt,args...) printf(fmt ,##args) +extern vm_offset_t _pci_dmamap __P((vm_offset_t, u32)); +#define vtophys(p) _pci_dmamap((vm_offset_t)p, 1) +#define VA_TO_PA(x) UNCACHED_TO_PHYS(x) +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#define MY_MALLOC 0 +#define MY_SATA 1 +#define SATADEBUG +/* to get some global routines like printf */ +#include "etherboot.h" +/* to get the interface to the body of the program */ +static int fault_timeout; +static int sata_match (struct device *, void *, void *); +static void sata_attach (struct device *, struct device *, void *); +#define myudelay delay +static inline void mdelay(u64 msec) +{ + u64 i; + for (i = 0; i < msec; i++) + myudelay(1000); +} + +static inline void sdelay(u64 sec) +{ + u64 i; + for (i = 0; i < sec; i++) + mdelay(1000); +} +static inline void sync(void) +{ +} + +#if 1 +u32 strnlen(const char* s, u32 count) +{ + const char *sc; + for(sc = s;count -- && *sc != '\0';++sc) + { + } + return (sc -s); +} +u64 ata_id_n_sectors(u16 *id) +{ + if (ata_id_has_lba(id)) { + if (ata_id_has_lba48(id)) + return ata_id_u64(id, ATA_ID_LBA48_SECTORS); + else + return ata_id_u32(id, ATA_ID_LBA_SECTORS); + } else { + return 0; + } +} + +u32 ata_dev_classify(u32 sig) +{ + u8 lbam, lbah; + + lbam = (sig >> 16) & 0xff; + lbah = (sig >> 24) & 0xff; + + if (((lbam == 0) && (lbah == 0)) || + ((lbam == 0x3c) && (lbah == 0xc3))) + return ATA_DEV_ATA; + + if ((lbam == 0x14) && (lbah == 0xeb)) + return ATA_DEV_ATAPI; + + if ((lbam == 0x69) && (lbah == 0x96)) + return ATA_DEV_PMP; + + return ATA_DEV_UNKNOWN; +} + + void ata_id_string(const u16 *id, unsigned char *s, unsigned int ofs, unsigned int len) +{ + unsigned int c; + + while (len > 0) { + c = id[ofs] >> 8; + *s = c; + s++; + + c = id[ofs] & 0xff; + *s = c; + s++; + + ofs++; + len -= 2; + } +} + +void ata_id_c_string(const u16 *id, unsigned char *s,unsigned int ofs, unsigned int len) +{ + unsigned char *p; + + ata_id_string(id, s, ofs, len - 1); + + p = s + strnlen((char *)s, len - 1); + while (p > s && p[-1] == ' ') + p--; + *p = '\0'; +} + +void ata_dump_id(u16 *id) +{ + unsigned char serial[ATA_ID_SERNO_LEN + 1]; + unsigned char firmware[ATA_ID_FW_REV_LEN + 1]; + unsigned char product[ATA_ID_PROD_LEN + 1]; + u64 n_sectors; + + /* Serial number */ + ata_id_c_string(id, serial, ATA_ID_SERNO, sizeof(serial)); + printf("S/N: %s\n\r", serial); + + /* Firmware version */ + ata_id_c_string(id, firmware, ATA_ID_FW_REV, sizeof(firmware)); + printf("Firmware version: %s\n\r", firmware); + + /* Product model */ + ata_id_c_string(id, product, ATA_ID_PROD, sizeof(product)); + printf("Product model number: %s\n\r", product); + + /* Total sectors of device */ + n_sectors = ata_id_n_sectors(id); + printf("Capablity: %d sectors\n\r", n_sectors); + + printf ("id[49]: capabilities = 0x%04x\n" + "id[53]: field valid = 0x%04x\n" + "id[63]: mwdma = 0x%04x\n" + "id[64]: pio = 0x%04x\n" + "id[75]: queue depth = 0x%04x\n", + id[49], + id[53], + id[63], + id[64], + id[75]); + + printf ("id[76]: sata capablity = 0x%04x\n" + "id[78]: sata features supported = 0x%04x\n" + "id[79]: sata features enable = 0x%04x\n", + id[76], + id[78], + id[79]); + + printf ("id[80]: major version = 0x%04x\n" + "id[81]: minor version = 0x%04x\n" + "id[82]: command set supported 1 = 0x%04x\n" + "id[83]: command set supported 2 = 0x%04x\n" + "id[84]: command set extension = 0x%04x\n", + id[80], + id[81], + id[82], + id[83], + id[84]); + printf ("id[85]: command set enable 1 = 0x%04x\n" + "id[86]: command set enable 2 = 0x%04x\n" + "id[87]: command set default = 0x%04x\n" + "id[88]: udma = 0x%04x\n" + "id[93]: hardware reset result = 0x%04x\n", + id[85], + id[86], + id[87], + id[88], + id[93]); +} + +void ata_swap_buf_le16(u16 *buf, unsigned int buf_words) +{ + unsigned int i; + + for (i = 0; i < buf_words; i++) + buf[i] = (u16)buf[i]; +} + +#endif + +static int ata_wait_register(volatile unsigned *addr, u32 mask, + u32 val, u32 timeout_msec) +{ + int i; + u32 temp; + + for (i = 0; (((temp = inl(addr)) & mask) != val) + && i < timeout_msec; i++) + mdelay(1); + return (i < timeout_msec) ? 0 : -1; +} + +void dump_print(u32 reg,u32 num) +{ + u32 i; + u32 j = 0; + printf("\n\n%08lx to %08lx shown below\n",reg,reg + num); + for(i = reg;i < reg + num;i+=4) + { + if(j % 4 == 0) + printf("\n%08lx\t",i); + printf("%08lx\t",inl(i)); + j ++; + } +} +int init_sata(int dev,u32 reg) +{ + u32 length, align; + cmd_hdr_tbl_t *cmd_hdr; + T_ReceiveFIS *receive_fis; + u32 cda; + u32 i; + u32 dma_cmdhdr_addr; + u32 dma_receive_fis; + int device = 13,func = 0; + atp_sata_t *sata; + if (dev < 0 || dev > (CFG_SATA_MAX_DEVICE - 1)) + { + printf("the sata index %d is out of ranges\n\r", dev); + return -1; + } + /* Allocate SATA device driver struct */ + #if MY_MALLOC + sata = (atp_sata_t *)malloc(sizeof(atp_sata_t)); + #else + sata = (atp_sata_t *)malloc(sizeof(atp_sata_t), M_DEVBUF, M_NOWAIT); + #endif + if (!sata) + { + printf("alloc the sata device struct failed\n\r"); + return -1; + } + /* Zero all of the device driver struct */ + memset((void *)sata, 0, sizeof(atp_sata_t)); + + /* Save the private struct to block device struct */ + sata_dev_desc[dev].priv = (void *)sata; + sprintf(sata->name, "SATA%d", dev); + + /* Set the controller register base address to device struct */ + sata->reg_base = reg; + + /* Allocate the command header table, 1024 bytes aligned */ + length = sizeof(struct cmd_hdr_tbl); + align = SATA_HC_CMD_HDR_TBL_ALIGN; + #if MY_MALLOC + sata->cmd_hdr_tbl_offset = (void *)malloc(length + align); +#else + sata->cmd_hdr_tbl_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); +#endif + if (!sata->cmd_hdr_tbl_offset) + { + printf("alloc the command header failed\n\r"); + return -1; + } + + cmd_hdr = (cmd_hdr_tbl_t *)(((u32)sata->cmd_hdr_tbl_offset + align) & ~(align - 1)); + sata->cmd_hdr = cmd_hdr; + + /* Zero all of the command header table */ + memset((void *)sata->cmd_hdr_tbl_offset, 0, length + align); + pci_sync_cache(0,sata->cmd_hdr_tbl_offset,length + align,1); + + /* Allocate receive fis */ + length = sizeof(*receive_fis); + align = 256; + #if MY_MALLOC + sata->receive_fis_offset = (void *)malloc(length + align); +#else + sata->receive_fis_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); +#endif + if (!sata->receive_fis_offset) + { + printf("alloc the receive fis failed\n\r"); + return -1; + } + receive_fis = (T_ReceiveFIS*)(((u32)sata->receive_fis_offset + align) + & ~(align - 1)); + sata->receive_fis = receive_fis; + /* Zero all of receive fis */ + memset((void *)sata->receive_fis_offset, 0, length + align); + pci_sync_cache(0,sata->receive_fis_offset,length + align,0); + + /* Allocate command descriptor for all command */ + length = sizeof(struct cmd_desc) * SATA_HC_MAX_CMD; + align = SATA_HC_CMD_DESC_ALIGN; +#if MY_MALLOC + sata->cmd_desc_offset = (void *)malloc(length + align); +#else + sata->cmd_desc_offset = (void *)malloc((length + align), M_DEVBUF, M_NOWAIT); +#endif + if (!sata->cmd_desc_offset) + { + printf("alloc the command descriptor failed\n\r"); + return -1; + } + sata->cmd_desc = (cmd_desc_t *)(((u32)sata->cmd_desc_offset + align) + & ~(align - 1)); + /* Zero all of command descriptor */ + memset((void *)sata->cmd_desc_offset, 0, length + align); + pci_sync_cache(0,sata->cmd_desc_offset,length + align,1); + /* Link the command descriptor to command header */ + for (i = 0; i < SATA_HC_MAX_CMD; i++) + { + cda = ((u32)sata->cmd_desc + SATA_HC_CMD_DESC_SIZE * i) + & ~(CMD_HDR_CDA_ALIGN - 1); + cmd_hdr->cmd_slot[i].ctba = (u32)(vtophys(cda)); + } + + /* Set the command header base address to CHBA register to tell DMA */ + dma_cmdhdr_addr = (u32)(vtophys(cmd_hdr & ~0x3ff)); + outl(reg, dma_cmdhdr_addr); + /*Set the CFIS to chip*/ + dma_receive_fis = (u32)(vtophys(receive_fis & ~0xff)); + outl(reg + 0x0004,0); + outl(reg + 0x0008,dma_receive_fis); + outl(reg + 0x000c,0); + /*Initialize the SATA channel*/ + outb(reg + 0x002c,0x01); //send COMRESET + mdelay(1); + outb(reg + 0x002c,0x00); + outb(reg + 0x0074,0x04); + outb(reg + 0x0018,0x17); + outl(reg + 0x0014,0); + outl(reg + 0x0030,0xffffffff); + return 0; +} +static int atp_ata_exec_ata_cmd(struct atp_sata *sata, struct cfis *cfis, + int is_ncq, int tag, u8 *buffer, u32 len) +{ + cmd_hdr_entry_t *cmd_hdr; + cmd_desc_t *cmd_desc; + sata_fis_h2d_t *h2d; + prd_entry_t *prde; + u32 dbc; + u32 prde_count; + u32 val32; + u32 buffer_length = len; + u32 reg = sata->reg_base; + u32 ci_map; + u8 status; + u8* dma_buffer; + int is_write; + int i; + dma_buffer = (u8 *)vtophys((u32)buffer); + /* Check xfer length */ + if (len > SATA_HC_MAX_XFER_LEN) + { + printf("max transfer length is 64MB\n\r"); + return 0; + } + + /* Setup the command descriptor */ + cmd_desc = sata->cmd_desc + tag; + + /* Get the pointer cfis of command descriptor */ + h2d = (sata_fis_h2d_t *)cmd_desc->cfis; + + /* Zero the cfis of command descriptor */ + memset((void *)h2d, 0, 64); + + /* Copy the cfis from user to command descriptor */ + h2d->fis_type = cfis->fis_type; + h2d->pm_port_c = cfis->pm_port_c; + h2d->command = cfis->command; + + h2d->features = cfis->features; + h2d->features_exp = cfis->features_exp; + + h2d->lba_low = cfis->lba_low; + h2d->lba_mid = cfis->lba_mid; + h2d->lba_high = cfis->lba_high; + h2d->lba_low_exp = cfis->lba_low_exp; + h2d->lba_mid_exp = cfis->lba_mid_exp; + h2d->lba_high_exp = cfis->lba_high_exp; + + if (!is_ncq) + { + h2d->sector_count = cfis->sector_count; + h2d->sector_count_exp = cfis->sector_count_exp; + } else + { /* NCQ */ + h2d->sector_count = (u8)(tag << 3); + } + + h2d->device = cfis->device; + h2d->control = cfis->control; + h2d->FIS_Flag = 1; + + /* Setup the PRD table */ + prde = (prd_entry_t *)cmd_desc->prdt; + memset((void *)prde, 0, sizeof(prd_entry_t) * 24); + prde_count = 0; + for (i = 0; i < SATA_HC_MAX_PRD_DIRECT; i++) + { + if (!len) + break; + prde->dba_u = 0; + if (len < PRD_ENTRY_MAX_XFER_SZ) + { + dbc = 0x80000000 | len; + dbc = len; + prde->dba = (u32)dma_buffer; + prde->dbc = (u32)(dbc); + prde_count++; + prde++; + len=0; + break; + } else + { + dbc = PRD_ENTRY_MAX_XFER_SZ; /* 4M bytes */ + prde->dba = (u32)dma_buffer; + prde->dbc = (u32)(dbc); + dma_buffer += PRD_ENTRY_MAX_XFER_SZ; + len -= PRD_ENTRY_MAX_XFER_SZ; + prde_count++; + prde++; + } + } + + if(len)printf("left %d\n",len); + + if(cfis->command == 0x61 || cfis->command == 0x35) + is_write = 1; + else if(cfis->command == 0x60 || cfis->command == 0x25) + is_write = 0; + /* Setup the command slot of cmd hdr */ + cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; + memset((void*)cmd_hdr,0,0x20); + cmd_hdr->ctba = (u32)(vtophys((u32)cmd_desc)); + cmd_hdr->ctba_u = 0; + cmd_hdr->CommandFISLen = 5; + cmd_hdr->AtapiPioFIS = 0; + cmd_hdr->PreFetchAble = 0; + cmd_hdr->Reset = 0; + cmd_hdr->Bist = 0; + cmd_hdr->ClearBusy = 0; + cmd_hdr->Reserved0 = 0; + cmd_hdr->PortMultiplier = 0; //not sure + cmd_hdr->prdtl = 0; + cmd_hdr->prdbc = 0; + cmd_hdr->ReadWrite = is_write; + + /* Make sure cmd desc and cmd slot valid before commmand issue */ + sync(); + + status = inb(reg + 0x0074) & 0xFE; + ci_map = 0x00000001; + ci_map <<= tag; + if (is_ncq) + { + status |= 0x01; // enable NCQ bit + outb(reg + 0x0074,status); + outl(reg + 0x0034,ci_map); + } + else + { + outb(reg + 0x0074,status); + } + pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); + pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); + pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); + if(buffer && buffer_length)pci_sync_cache(0,buffer,buffer_length,is_write); + outb(reg +0x0074,inb(reg +0x0074)&0xfe); + outl(reg + 0x0038,ci_map); + /* Wait command completed for 1s */ +/* if (ata_wait_register(reg + 0x0038, ci_map, ci_map, 1000)) + { + if (!is_ncq) + printf("\n\rNon-NCQ command time out\n\r"); + else + printf("\n\rNCQ command time out\n\r"); + } + */ + for(i = 0;i < 1000;i ++) + { + if((inl(reg + 0x0038) & ci_map) == 0) + { + break; + } + //zgj myudelay(1000); + myudelay(2000); + } + if(i >= 1000) + { + fault_timeout ++; + printf("\n0x0038 not cleared,time out\n"); + return -2; + } + while(inl(reg + 0x0010)==0xffffffff) + { + myudelay(100); + } + for(i = 0;i < 1000;i ++) + { + if(inb(reg + 0x0010) & 0x03) + { + break; + } + myudelay(1000); + } + if(i >= 1000) + { + printf("\nreceive no rfis,time out\n"); + return -1; + } + + return len; +} + +static int atp_ata_exec_reset_cmd(struct atp_sata *sata, struct cfis *cfis, + int tag, u8 *buffer, u32 len) +{ + return 0; +} + +static int atp_sata_exec_cmd(struct atp_sata *sata, struct cfis *cfis, + enum cmd_type command_type, int tag, u8 *buffer, u32 len) +{ + int rc; + + if (tag > SATA_HC_MAX_CMD || tag < 0) + { + printf("tag is out of range, tag=\n\r", tag); + return -1; + } + + switch (command_type) + { + case CMD_ATA: + rc = atp_ata_exec_ata_cmd(sata, cfis, 0, tag, buffer, len); + return rc; + case CMD_RESET: + rc = atp_ata_exec_reset_cmd(sata, cfis, tag, buffer, len); + return rc; + case CMD_NCQ: + rc = atp_ata_exec_ata_cmd(sata, cfis, 1, tag, buffer, len); + return rc; + case CMD_ATAPI: + case CMD_VENDOR_BIST: + case CMD_BIST: + printf("not support now\n\r"); + return -1; + default: + break; + } + + return -1; +} + +static void atp_sata_identify(int dev, u16 *id,int tag) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + cmd_hdr_entry_t *cmd_hdr; + cmd_desc_t *cmd_desc; + prd_entry_t *prde; + u32 ci_map; + u8 status74; + u8 Error_status; + u32 dma_buffer; + int i; + status74 = inb(sata->reg_base + 0x0074); + cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; + dma_buffer = vtophys((u32)id); + cmd_desc = sata->cmd_desc + tag; + ((cfis_t*)(cmd_desc->cfis))->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + ((cfis_t*)(cmd_desc->cfis))->FIS_Flag = 1; + ((cfis_t*)(cmd_desc->cfis))->pm_port_c = 0x0; + ((cfis_t*)(cmd_desc->cfis))->device = 0xe0; + ((cfis_t*)(cmd_desc->cfis))->command = ATA_CMD_ID_ATA; + + prde = (prd_entry_t*)cmd_desc->prdt; + memset((void*)prde,0,sizeof(prd_entry_t)); + prde->dba = vtophys((u32)id); + prde->dba_u = 0; + prde->dbc = 0x80000200; + + cmd_hdr->PortMultiplier = 0x0; + cmd_hdr->CommandFISLen = 0x05; + cmd_hdr->prdtl = 0; + cmd_hdr->prdbc = 0; + + ci_map = 0x00000001 << tag; + + pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); + pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); + pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); + pci_sync_cache(0,id,ATA_ID_WORDS * 2,0); + outl(sata->reg_base + 0x0038,ci_map); + for (i = 0 ; i < 1000 ; i++) + { + // wait CI bit clear + if ((inl(sata->reg_base + 0x0038) & ci_map) == 0) + { + // CI bit to be clear + break; + } + myudelay(1000); + } + if (i >= 1000) + { + fault_timeout ++; + printf("\n0x0038 not cleared,time out\n"); + // time out + outb(sata->reg_base + 0x0018,0x16); + outb(sata->reg_base + 0x0018,0x17); + outb(sata->reg_base + 0x0074,status74); // restore Reg74 + return; + } + for (i = 0 ; i < 1000 ; i++) + { + //wait 1s for D2H/PIO FIS + if (inb(sata->reg_base + 0x0010) & 0x03) + { + // got D2H register FIS/ got PIO setup FIS + break; + } + myudelay(1000); + } + if (i >= 1000) + { + printf("\nreceive no rfis,time out\n"); + // time out + outb(sata->reg_base + 0x0018,0x16); + outb(sata->reg_base + 0x0018,0x17); + outb(sata->reg_base + 0x0074,status74); // restore Reg74 + return; + } + Error_status = sata->receive_fis->Device2HostFIS.Status; + outb(sata->reg_base + 0x0010,0x03); // clear interrupt + if (Error_status & 0x01) + { + // Identify command error + outb(sata->reg_base + 0x0074,status74); // restore Reg74 + return; + } + +} + +static void atp_sata_xfer_mode(int dev, u16 *id) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + + sata->pio = id[ATA_ID_PIO_MODES]; + sata->mwdma = id[ATA_ID_MWDMA_MODES]; + sata->udma = id[ATA_ID_UDMA_MODES]; + debug("pio %04x, mwdma %04x, udma %04x\n\r", sata->pio, sata->mwdma, sata->udma); +} + +static void atp_sata_set_features(int dev) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + struct sata_fis_h2d h2d; + struct cfis *cfis; + u8 udma_cap; + + cfis = (struct cfis *)&h2d; + memset((void *)cfis, 0, sizeof(struct cfis)); + + cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + cfis->pm_port_c = 0x0; /* is command */ + cfis->command = ATA_CMD_SET_FEATURES; + cfis->features = SETFEATURES_XFER; + + /* First check the device capablity */ + udma_cap = (u8)(sata->udma & 0xff); + debug("udma_cap %02x\n\r", udma_cap); + + if (udma_cap == ATA_UDMA6) + cfis->sector_count = XFER_UDMA_6; + if (udma_cap == ATA_UDMA5) + cfis->sector_count = XFER_UDMA_5; + if (udma_cap == ATA_UDMA4) + cfis->sector_count = XFER_UDMA_4; + if (udma_cap == ATA_UDMA3) + cfis->sector_count = XFER_UDMA_3; + + atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, NULL, 0); +} + +static u32 atp_sata_rw_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + struct sata_fis_h2d h2d; + struct cfis *cfis; + u32 block; + + block = start; + cfis = (struct cfis *)&h2d; + + memset((void *)cfis, 0, sizeof(struct cfis)); + + cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + cfis->pm_port_c = 0x80; /* is command */ + cfis->command = (is_write) ? ATA_CMD_WRITE : ATA_CMD_READ; + cfis->device = ATA_LBA; + + cfis->device |= (block >> 24) & 0xf; + cfis->lba_high = (block >> 16) & 0xff; + cfis->lba_mid = (block >> 8) & 0xff; + cfis->lba_low = block & 0xff; + cfis->sector_count = (u8)(blkcnt & 0xff); + + atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); + return blkcnt; +} + +static u32 atp_sata_rw_cmd_ext(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + struct sata_fis_h2d h2d; + struct cfis *cfis; + u64 block; + + block = (u64)start; + cfis = (struct cfis *)&h2d; + + memset((void *)cfis, 0, sizeof(struct cfis)); + + cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + cfis->pm_port_c = 0x80; /* is command */ + + cfis->command = (is_write) ? ATA_CMD_WRITE_EXT + : ATA_CMD_READ_EXT; + + cfis->lba_high_exp = (block >> 40) & 0xff; + cfis->lba_mid_exp = (block >> 32) & 0xff; + cfis->lba_low_exp = (block >> 24) & 0xff; + cfis->lba_high = (block >> 16) & 0xff; + cfis->lba_mid = (block >> 8) & 0xff; + cfis->lba_low = block & 0xff; + cfis->device = 0xe0; + cfis->sector_count_exp = (blkcnt >> 8) & 0xff; + cfis->sector_count = blkcnt & 0xff; + + atp_sata_exec_cmd(sata, cfis, CMD_ATA, 0, buffer, ATA_SECT_SIZE * blkcnt); + return blkcnt; +} + +u32 atp_sata_rw_ncq_cmd(int dev, u32 start, u32 blkcnt, u8 *buffer, int is_write) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + struct sata_fis_h2d h2d; + struct cfis *cfis; + int ncq_channel; + u64 block; + + if (sata_dev_desc[dev].lba48 != 1) + { + printf("execute FPDMA command on non-LBA48 hard disk\n\r"); + return -1; + } + + block = (u64)start; + cfis = (struct cfis *)&h2d; + + memset((void *)cfis, 0, sizeof(struct cfis)); + + cfis->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + cfis->pm_port_c = 0x80; /* is command */ + + cfis->command = (is_write) ? ATA_CMD_FPDMA_WRITE + : ATA_CMD_FPDMA_READ; + + cfis->lba_high_exp = (block >> 40) & 0xff; + cfis->lba_mid_exp = (block >> 32) & 0xff; + cfis->lba_low_exp = (block >> 24) & 0xff; + cfis->lba_high = (block >> 16) & 0xff; + cfis->lba_mid = (block >> 8) & 0xff; + cfis->lba_low = block & 0xff; + + cfis->device = 0x40; + cfis->features_exp = (blkcnt >> 8) & 0xff; + cfis->features = blkcnt & 0xff; + + if (sata->queue_depth >= SATA_HC_MAX_CMD) + ncq_channel = SATA_HC_MAX_CMD - 1; + else + ncq_channel = sata->queue_depth - 1; + + /* Use the latest queue */ + atp_sata_exec_cmd(sata, cfis, CMD_NCQ, ncq_channel, buffer, ATA_SECT_SIZE * blkcnt); + return blkcnt; +} + + +/* Software reset, set SRST of the Device Control register */ +int atp_sata_software_reset(int dev,int tag) +{ + + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + cmd_hdr_entry_t *cmd_hdr; + cmd_desc_t *cmd_desc; + u32 ci_map; + memset((void *)sata->cmd_desc, 0, 64); + cmd_hdr = (cmd_hdr_entry_t *)&sata->cmd_hdr->cmd_slot[tag]; + cmd_desc = sata->cmd_desc + tag; + memset((void*)cmd_hdr,0,0x400); +// sata->cmd_hdr->cmd_slot[tag].PortMultiplier = 0x0f; + cmd_hdr->CommandFISLen = 0x05; + cmd_hdr->ClearBusy = 1; +// cmd_hdr->PortMultiplier = 0x0f; + cmd_hdr->ctba = vtophys((u32)(cmd_desc)); +// ((cfis_t*)(cmd_desc->cfis))->pm_port_c = 0x0f;; + ((cfis_t*)(cmd_desc->cfis))->fis_type = SATA_FIS_TYPE_REGISTER_H2D; + ((cfis_t*)(cmd_desc->cfis))->FIS_Flag = 0; + ((cfis_t*)(cmd_desc->cfis))->control = 0x04; //RST bit =1 + ci_map = 0x00000001 << tag; +SATADEBUG + pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); + pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); + pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); + +// ci_map = 0x00000001 << 7; + outl(sata->reg_base + 0x0038,ci_map); + while (inl(sata->reg_base + 0x0038) & ci_map) + { + myudelay(100); + } + myudelay(10); + + cmd_hdr->ClearBusy = 0; + ((cfis_t*)cmd_desc->cfis)->control = 0; //RST bit = 0 + pci_sync_cache(0,cmd_hdr,sizeof(*cmd_hdr),1); + pci_sync_cache(0,cmd_desc,sizeof(*cmd_desc),1); + pci_sync_cache(0,sata->receive_fis,sizeof(*sata->receive_fis),0); + outl(sata->reg_base + 0x0038,ci_map); + while (inl(sata->reg_base + 0x0038) & ci_map) + { + myudelay(100); + } + myudelay(100); + outb(sata->reg_base + 0x0010,inb(sata->reg_base + 0x0010)); //clear error +SATADEBUG + return 1; +} + +static void atp_sata_init_wcache(int dev, u16 *id) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + + if (ata_id_has_wcache(id) && ata_id_wcache_enabled(id)) + sata->wcache = 1; + if (ata_id_has_flush(id)) + sata->flush = 1; + if (ata_id_has_flush_ext(id)) + sata->flush_ext = 1; +} + + +u32 ata_low_level_rw_lba48(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_write) +{ + u32 start, blks; + u8 *addr; + int max_blks; + + start = blknr; + blks = blkcnt; + addr = (u8 *)buffer; + + max_blks = ATA_MAX_SECTORS_LBA48; + do { + if (blks > max_blks) + { + atp_sata_rw_cmd_ext(dev, start, max_blks, addr, is_write); + start += max_blks; + blks -= max_blks; + addr += ATA_SECT_SIZE * max_blks; + } else + { + atp_sata_rw_cmd_ext(dev, start, blks, addr, is_write); + start += blks; + blks = 0; + addr += ATA_SECT_SIZE * blks; + } + } while (blks != 0); + + return blkcnt; +} + +u32 ata_low_level_rw_lba28(int dev, u32 blknr, u32 blkcnt, void *buffer, int is_write) +{ + u32 start, blks; + u8 *addr; + int max_blks; + + start = blknr; + blks = blkcnt; + addr = (u8 *)buffer; + + max_blks = ATA_MAX_SECTORS; + do { + if (blks > max_blks) + { + atp_sata_rw_cmd(dev, start, max_blks, addr, is_write); + start += max_blks; + blks -= max_blks; + addr += ATA_SECT_SIZE * max_blks; + } else + { + atp_sata_rw_cmd(dev, start, blks, addr, is_write); + start += blks; + blks = 0; + addr += ATA_SECT_SIZE * blks; + } + } while (blks != 0); + + return blkcnt; +} + +/* + * SATA interface between low level driver and command layer + */ +ulong atp_sata_read(int dev, unsigned long blknr, lbaint_t blkcnt, void *buffer) +{ + u32 rc; + if (sata_dev_desc[dev].lba48) + rc = ata_low_level_rw_lba48(dev, blknr, blkcnt, buffer, READ_CMD); + else + rc = ata_low_level_rw_lba28(dev, blknr, blkcnt, buffer, READ_CMD); + return rc; +} + +ulong atp_sata_write(int dev, unsigned long blknr, lbaint_t blkcnt, void *buffer) +{ + u32 rc; + + if (sata_dev_desc[dev].lba48) + { + rc = ata_low_level_rw_lba48(dev, blknr, blkcnt, buffer, WRITE_CMD); + } else + { + rc = ata_low_level_rw_lba28(dev, blknr, blkcnt, buffer, WRITE_CMD); + } + return rc; +} + +int scan_sata(int dev) +{ + atp_sata_t *sata = (atp_sata_t *)sata_dev_desc[dev].priv; + u8 serial[ATA_ID_SERNO_LEN + 1]; + u8 firmware[ATA_ID_FW_REV_LEN + 1]; + u8 product[ATA_ID_PROD_LEN + 1]; + u8 statusX; + u8 status; + u32 signature; + u32 *id; + u64 n_sectors; + u32 reg = sata->reg_base; + int k; +printf("reg = 0x%x \n",reg); + for(k = 0;k < 1000;k++) + { + statusX = (inb(reg + 0x0028) & 0x0F); + if(statusX == 0x03) + { + break; + } + myudelay(1000); + } +printf("statusX = %d, k = %d \n",statusX,k); + if(statusX == 0x03) + { + // physical ready + // ===================================================================== + // clear BUSY & DRQ bit to release channel + // ===================================================================== + status = inb(reg + 0x0018) | 0x08; + outb(reg + 0x0018,status); + while(inb(reg + 0x0018) & 0x08) + { + myudelay(10); + } + if(atp_sata_software_reset(dev,0)) + { + for(k = 0;k < 1000;k++) + { + signature = inl(reg + 0x0024); + if(signature == 0x0101) + { + break; + } + myudelay(1000); + } +printf("signature = 0x%x \n",signature); + if(signature == 0x00000101) + { + + //found ata device + id = (u32 *)malloc((ATA_ID_WORDS * 2), M_DEVBUF, M_NOWAIT); +printf("id = 0x%8x \n",id); + if (!id) + { + printf("id malloc failed\n\r"); + return -1; + } + memset((void*)id,0,0x200); + /* Identify device to get information */ + atp_sata_identify(dev, (u16*)id,0); + + outb(reg + 0x0018,0x17); // CLEAR BSY & DRQ + outl(reg + 0x0014,0x00000009); // enable P0IS.SDBS, P0IS.DHRS + outl(reg + 0x0074,0); + statusX = inb(reg + 0x007A) | 0x77; + outb(reg + 0x007A,statusX); + + /* Serial number */ + ata_id_c_string((u16*)id, serial, ATA_ID_SERNO, sizeof(serial)); + memcpy(sata_dev_desc[dev].product, serial, sizeof(serial)); + + /* Firmware version */ + ata_id_c_string((u16*)id, firmware, ATA_ID_FW_REV, sizeof(firmware)); + memcpy(sata_dev_desc[dev].revision, firmware, sizeof(firmware)); + + /* Product model */ + ata_id_c_string((u16*)id, product, ATA_ID_PROD, sizeof(product)); + memcpy(sata_dev_desc[dev].vendor, product, sizeof(product)); + + /* Totoal sectors */ + n_sectors = ata_id_n_sectors((u16*)id); + sata_dev_desc[dev].lba = (u16*)n_sectors; + + /* Check if support LBA48 */ + if (ata_id_has_lba48((u16*)id)) + { + sata_dev_desc[dev].lba48 = 1; + } + + /* Get the NCQ queue depth from device */ +// sata->queue_depth = ata_id_queue_depth((u16*)id); + + /* Get the xfer mode from device */ +// atp_sata_xfer_mode(dev, (u16*)id); + + /* Get the write cache status from device */ +// atp_sata_init_wcache(dev, (u16*)id); + + /* Set the xfer mode to highest speed */ + atp_sata_set_features(dev); + free((void *)id, M_DEVBUF);; + } + } + } + else return -1; + return 0; +} +//#undef malloc + +int atp_sata_initialize(u32 reg,u32 flags); + +struct cfattach sata_ca = { + sizeof(atp_sata_t),sata_match, sata_attach, +}; + + +//DV_IFNET means network interface +//defined in sys/dev/device.h + +struct cfdriver sata_cd = { + NULL, "sata", DV_DISK, +}; +static int sata_match( + struct device *parent, + void *match, + void * aux + ) +{ + atp_sata_info_t *pinfo = aux; + if (pinfo->flags == 0 ||pinfo->flags == 1) + return 1; + else + return 0; +} + +static void sata_attach(struct device * parent,struct device * self,void *aux) +{ + int valid; + atp_sata_info_t *pinfo = aux; + valid = atp_sata_initialize(pinfo->sata_reg_base,pinfo->flags); + if(valid) + self->dv_class = DV_DULL; +} + + +int curr_device = -1; +block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; + + void init_part (block_dev_desc_t* dev_desc) +{ + +} + + int atp_sata_initialize(u32 reg,u32 flags) +{ + int rc; + int i=flags; +SATADEBUG + memset(&sata_dev_desc[i], 0, sizeof(struct block_dev_desc)); + sata_dev_desc[i].if_type = IF_TYPE_SATA; + sata_dev_desc[i].dev = i; + sata_dev_desc[i].part_type = PART_TYPE_UNKNOWN; + sata_dev_desc[i].type = DEV_TYPE_HARDDISK; + sata_dev_desc[i].lba = 0; + sata_dev_desc[i].blksz = 512; + sata_dev_desc[i].block_read = atp_sata_read; + sata_dev_desc[i].block_write = atp_sata_write; + +SATADEBUG + rc = init_sata(i,reg); + rc = scan_sata(i); +SATADEBUG + if ((sata_dev_desc[i].lba > 0) && (sata_dev_desc[i].blksz > 0)) + init_part(&sata_dev_desc[i]); + + curr_device = 0; + return rc; +} + +block_dev_desc_t *sata_get_dev(int dev) +{ + return (dev < CFG_SATA_MAX_DEVICE) ? &sata_dev_desc[dev] : NULL; +} + +//////////////////satafs////////////////// +/* + * Supported paths: + * /dev/sata + */ +#include +#include +#include +#include +#include +#undef _KERNEL +#include + +block_dev_desc_t sata_dev_desc[CFG_SATA_MAX_DEVICE]; + +struct atp_sata_softc { + /* General disk infos */ + struct device sc_dev; + int bs,count; +}; +#define atp_sata_lookup(dev) (struct atp_sata_softc *)device_lookup(&sata_cd, minor(dev)) + +void atp_sata_strategy(struct buf *bp) +{ + struct atp_sata_softc *priv; + unsigned int blkno, blkcnt; + int ret ; + + priv=atp_sata_lookup(bp->b_dev); + + blkno = bp->b_blkno; + + blkno = blkno /(priv->bs/DEV_BSIZE); + blkcnt = howmany(bp->b_bcount, priv->bs); + + /* Valid request? */ + if (bp->b_blkno < 0 || + (bp->b_bcount % priv->bs) != 0 || + (bp->b_bcount / priv->bs) >= (1 << NBBY)) { + bp->b_error = EINVAL; + printf("Invalid request \n"); + goto bad; + } + + /* If it's a null transfer, return immediately. */ + if (bp->b_bcount == 0) + goto done; + + if(bp->b_flags & B_READ){ + fault_timeout = 0; + ret=atp_sata_read(minor(bp->b_dev),blkno,blkcnt,bp->b_data); + if(ret != blkcnt||fault_timeout) + bp->b_flags |= B_ERROR; + dotik(30000, 0); + } + else + { + fault_timeout = 0; + ret=atp_sata_write(minor(bp->b_dev),blkno,blkcnt,bp->b_data); + if(ret != blkcnt||fault_timeout) + bp->b_flags |= B_ERROR; + dotik(30000, 0); + } +done: + biodone(bp); + return; +bad: + bp->b_flags |= B_ERROR; + biodone(bp); +} + + +int atp_open( + dev_t dev, + int flag, int fmt, + struct proc *p) +{ +char sata_cmd[0x200]; +char *sata_env; +struct atp_sata_softc *priv; +priv=atp_sata_lookup(dev); +if(!priv)return -1; +priv->bs=ATA_SECT_SIZE; +priv->count=-1; +return 0; +} + + +int +atp_close( dev_t dev, + int flag, int fmt, + struct proc *p) +{ + return 0; +} + +int +atp_read( + dev_t dev, + struct uio *uio, + int flags) +{ + return physio(atp_sata_strategy, NULL, dev, B_READ, minphys, uio); +} + +int +atp_write( + dev_t dev, + struct uio *uio, + int flags) +{ + return (physio(atp_sata_strategy, NULL, dev, B_WRITE, minphys, uio)); +} + +///////////////////satafs end////////////////////// + int cmd_sata_atp(int argc, char *argv[]) +{ + int rc = 0; + int i=0; + switch (argc) { + case 0: + case 1: + printf("Hello Sata!!!\n"); + return 1; + case 2: + if (strncmp(argv[1],"inf", 3) == 0) { + int i; + printf("\n"); + for (i = 0; i < CFG_SATA_MAX_DEVICE; ++i) { + if (sata_dev_desc[i].type == DEV_TYPE_UNKNOWN) + { + printf("sata_dev_desc[%d].type = %d\n",i,sata_dev_desc[i].type); + continue; + } + printf ("SATA device %d:\n", i); + } + return 0; + } else if (strncmp(argv[1],"dev", 3) == 0) { + if ((curr_device < 0) || (curr_device >= CFG_SATA_MAX_DEVICE)) { + printf("dev-curr_device=%d\n",curr_device); + printf("no SATA devices available\n"); + return 1; + } + printf("SATA device %d:\n", curr_device); + return 0; + } else if (strncmp(argv[1],"part",4) == 0) { + int dev, ok; + + for (ok = 0, dev = 0; dev < CFG_SATA_MAX_DEVICE; ++dev) { + if (sata_dev_desc[dev].part_type != PART_TYPE_UNKNOWN) { + ++ok; + } + } + if (!ok) { + printf("\nno SATA devices available\n"); + rc ++; + } + return rc; + } + return 1; + case 3: + if (strncmp(argv[1], "dev", 3) == 0) { + int dev = (int)strtoul(argv[2], NULL, 10); + + printf("SATA device %d:\n", dev); + if (dev >= CFG_SATA_MAX_DEVICE) { + printf ("unknown device\n"); + return 1; + } + + if (sata_dev_desc[dev].type == DEV_TYPE_UNKNOWN) + return 1; + + curr_device = dev; + + printf("... is now current device\n"); + + return 0; + } else if (strncmp(argv[1], "part", 4) == 0) { + int dev = (int)strtoul(argv[2], NULL, 10); + + if (sata_dev_desc[dev].part_type != PART_TYPE_UNKNOWN) { + } else { + printf("\nSATA device %d not available\n", dev); + rc = 1; + } + return rc; + } + return 1; + + default: /* at least 4 args */ + if (strcmp(argv[1], "read") == 0) { + ulong addr = strtoul(argv[2], NULL, 16); + ulong cnt = strtoul(argv[4], NULL, 16); + ulong n; + lbaint_t blk = strtoul(argv[3], NULL, 16); + + printf("\nSATA read: device %d block # %ld, count %ld ... ", + curr_device, blk, cnt); + + n = atp_sata_read(curr_device, blk, cnt, (u32 *)addr); + printf("the buffer address is 0x%x\n",addr); + for(i=0;i