From e6d6b6ebef0493852ef3242624c56a0b5620e38f Mon Sep 17 00:00:00 2001 From: antoniovillena Date: Sat, 30 Apr 2016 17:26:08 +0200 Subject: [PATCH] =?UTF-8?q?Quito=20m=C3=A1s=20archivos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cores/Spectrum/cronograma_spi.wcfg | 54 - cores/Spectrum/cronograma_ula_reloaded.wcfg | 162 - cores/Spectrum/cronograma_zxuno.wcfg | 255 - cores/Spectrum/genkeybmap_av.c | 432 - cores/Spectrum/genkeybmap_es.c | 492 - cores/Spectrum/genkeybmap_us.c | 482 - cores/Spectrum/keyb_av_hex.txt | 16384 ------------------ cores/Spectrum/make.bat | 12 +- cores/Spectrum/pantalla_ulatest3.hex | 16384 ------------------ cores/Spectrum/testcontenida.asm | 43 - cores/Spectrum/testcontenida.bin | Bin 78 -> 0 bytes cores/Spectrum/testcontenida_hex.txt | 78 - cores/Spectrum/testflashspi.tap | Bin 401 -> 0 bytes cores/Spectrum/testmmc.tap | Bin 574 -> 0 bytes cores/Spectrum/testnmi.asm | 84 - cores/Spectrum/testrom.asm | 185 - cores/Spectrum/testrom.tap | Bin 616 -> 0 bytes cores/Spectrum/timings_pentagon128.png | Bin 20113 -> 0 bytes cores/Spectrum/tld_zxuno.prj | 19 +- cores/Spectrum/tld_zxuno.xst | 30 +- 20 files changed, 35 insertions(+), 35061 deletions(-) delete mode 100644 cores/Spectrum/cronograma_spi.wcfg delete mode 100644 cores/Spectrum/cronograma_ula_reloaded.wcfg delete mode 100644 cores/Spectrum/cronograma_zxuno.wcfg delete mode 100644 cores/Spectrum/genkeybmap_av.c delete mode 100644 cores/Spectrum/genkeybmap_es.c delete mode 100644 cores/Spectrum/genkeybmap_us.c delete mode 100644 cores/Spectrum/keyb_av_hex.txt delete mode 100644 cores/Spectrum/pantalla_ulatest3.hex delete mode 100644 cores/Spectrum/testcontenida.asm delete mode 100644 cores/Spectrum/testcontenida.bin delete mode 100644 cores/Spectrum/testcontenida_hex.txt delete mode 100644 cores/Spectrum/testflashspi.tap delete mode 100644 cores/Spectrum/testmmc.tap delete mode 100644 cores/Spectrum/testnmi.asm delete mode 100644 cores/Spectrum/testrom.asm delete mode 100644 cores/Spectrum/testrom.tap delete mode 100644 cores/Spectrum/timings_pentagon128.png diff --git a/cores/Spectrum/cronograma_spi.wcfg b/cores/Spectrum/cronograma_spi.wcfg deleted file mode 100644 index 795bbdf..0000000 --- a/cores/Spectrum/cronograma_spi.wcfg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - clk - clk - - - dout[7:0] - dout[7:0] - - - data_from_spi[7:0] - data_from_spi[7:0] - - - oe_n - oe_n - - - spi_clk - spi_clk - - - spi_di - spi_di - - - spi_do - spi_do - - - enviar_dato - enviar_dato - - - recibir_dato - recibir_dato - - - din[7:0] - din[7:0] - - diff --git a/cores/Spectrum/cronograma_ula_reloaded.wcfg b/cores/Spectrum/cronograma_ula_reloaded.wcfg deleted file mode 100644 index 9b14ce7..0000000 --- a/cores/Spectrum/cronograma_ula_reloaded.wcfg +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - clk14 - clk14 - - - clk7 - clk7 - - - [0] - hc[0] - - - cpuclk - cpuclk - - - hc[8:0] - hc[8:0] - UNSIGNEDDECRADIX - - - vc[8:0] - vc[8:0] - UNSIGNEDDECRADIX - - - VideoEnable - VideoEnable - - - MayContend_n - MayContend_n - - - CauseContention_n - CauseContention_n - - - CancelContention - CancelContention - - - BitmapAddr - BitmapAddr - - - AttrAddr - AttrAddr - - - BitmapDataLoad - BitmapDataLoad - - - AttrDataLoad - AttrDataLoad - - - va[13:0] - va[13:0] - HEXRADIX - - - vramdata[7:0] - vramdata[7:0] - HEXRADIX - - - BitmapData[7:0] - BitmapData[7:0] - HEXRADIX - - - AttrData[7:0] - AttrData[7:0] - HEXRADIX - - - SerializerLoad - SerializerLoad - - - AttrOutputLoad - AttrOutputLoad - - - CA[4:0] - CA[4:0] - HEXRADIX - - - CALoad - CALoad - - - rst_n - rst_n - - - mreq_n - mreq_n - - - iorq_n - iorq_n - - - rd_n - rd_n - - - wr_n - wr_n - - - a[15:0] - a[15:0] - HEXRADIX - - - va[13:0] - va[13:0] - HEXRADIX - - - r[2:0] - r[2:0] - UNSIGNEDDECRADIX - - - g[2:0] - g[2:0] - UNSIGNEDDECRADIX - - - b[2:0] - b[2:0] - UNSIGNEDDECRADIX - - - csync - csync - - - int_n - int_n - - diff --git a/cores/Spectrum/cronograma_zxuno.wcfg b/cores/Spectrum/cronograma_zxuno.wcfg deleted file mode 100644 index 86f595c..0000000 --- a/cores/Spectrum/cronograma_zxuno.wcfg +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - clk - clk - - - addr_rom_16k[13:0] - addr_rom_16k[13:0] - HEXRADIX - - - sram_addr[18:0] - sram_addr[18:0] - HEXRADIX - - - sram_we_n - sram_we_n - - - sram_data[7:0] - sram_data[7:0] - HEXRADIX - - - rom_dout[7:0] - rom_dout[7:0] - HEXRADIX - - - VIDEO - label - 128 128 255 - 230 230 230 - - - r[2:0] - r[2:0] - UNSIGNEDDECRADIX - - - g[2:0] - g[2:0] - UNSIGNEDDECRADIX - - - b[2:0] - b[2:0] - UNSIGNEDDECRADIX - - - csync - csync - - - ULA - label - 128 128 255 - 230 230 230 - - - clk7 - clk7 - - - int_n - int_n - - - hc[8:0] - hc[8:0] - UNSIGNEDDECRADIX - - - vc[8:0] - vc[8:0] - UNSIGNEDDECRADIX - - - dout[7:0] - dout[7:0] - HEXRADIX - - - CLKWait - CLKWait - - - StopCLK - StopCLK - - - BitmapAddr - BitmapAddr - - - BitmapDataLoad - BitmapDataLoad - - - AttrAddr - AttrAddr - - - AttrDataLoad - AttrDataLoad - - - state[2:0] - state[2:0] - UNSIGNEDDECRADIX - - - ioreqall_n - ioreqall_n - - - Nor1 - Nor1 - - - Nor2 - Nor2 - - - CLKContention - CLKContention - - - CPU - label - 128 128 255 - 230 230 230 - - - clk - clk - - - A[15:0] - A[15:0] - HEXRADIX - - - di[7:0] - di[7:0] - HEXRADIX - - - dout[7:0] - dout[7:0] - HEXRADIX - - - mreq_n - mreq_n - - - iorq_n - iorq_n - - - rd_n - rd_n - - - wr_n - wr_n - - - m1_n - m1_n - - - rfsh_n - rfsh_n - - - DUAL PORT MEMORY - label - 128 128 255 - 230 230 230 - - - clk - clk - - - a1[18:0] - a1[18:0] - HEXRADIX - - - dout1[7:0] - dout1[7:0] - HEXRADIX - - - a2[18:0] - a2[18:0] - HEXRADIX - - - din2[7:0] - din2[7:0] - HEXRADIX - - - dout2[7:0] - dout2[7:0] - HEXRADIX - - - a[18:0] - a[18:0] - HEXRADIX - - - d[7:0] - d[7:0] - HEXRADIX - - - we_n - we_n - - - doutput1[7:0] - doutput1[7:0] - HEXRADIX - - - doutput2[7:0] - doutput2[7:0] - HEXRADIX - - diff --git a/cores/Spectrum/genkeybmap_av.c b/cores/Spectrum/genkeybmap_av.c deleted file mode 100644 index a735e5b..0000000 --- a/cores/Spectrum/genkeybmap_av.c +++ /dev/null @@ -1,432 +0,0 @@ -#include -#include - -typedef unsigned char BYTE; -/* - 8 8 3 5 3 5 -AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX - -AAA = semifila del teclado a modificar | esta información está -DDDDD = dato (AND negado con lo que haya) de esa semifila | repetida para dos teclas -MRN = Master reset, Reset de usuario, NMI -JJJJJ = estado del joystick al pulsar tecla. Posiciones UDLRX -MMM = la tecla es un modificador -XXXXX = Reservado para uso futuro - -Ej: en la dirección de memoria correspondiente al código de la tecla ESC, -que correspondería a la pulsación simultánea de CAPS SHIFT+SPACE, pondríamos: -00000001 11100001 000 00000 000 00000 -Esto es: se activan las semifilas 0 y 7, y en cada una, se activa el bit 0 - -256 codigos + E0 = 512 codigos -SHIFT, CTRL, ALT = 8 combinaciones - -512*8=4096 direcciones x 32 bits = 16384 bytes -En el core se dispondrá como una memoria de 16384x8 bits - -Cada tecla ocupará cuatro direcciones consecutivas. -D+0 : tecla1 (o 0 si no la hay) -D+1 : tecla2 (o 0 si no la hay) -D+2 : señales de reset y joystick, 0 si no hay -D+3 : modificadores y señales de usuario, 0 si no hay -*/ - -// You shouldn't have to touch these defs unless your Spectrum has a different keyboard -// layout (because, for example, you are using a different ROM - -#define SP_1 0x61 -#define SP_2 0x62 -#define SP_3 0x64 -#define SP_4 0x68 -#define SP_5 0x70 - -#define SP_0 0x81 -#define SP_9 0x82 -#define SP_8 0x84 -#define SP_7 0x88 -#define SP_6 0x90 - -#define SP_Q 0x41 -#define SP_W 0x42 -#define SP_E 0x44 -#define SP_R 0x48 -#define SP_T 0x50 - -#define SP_P 0xA1 -#define SP_O 0xA2 -#define SP_I 0xA4 -#define SP_U 0xA8 -#define SP_Y 0xB0 - -#define SP_A 0x21 -#define SP_S 0x22 -#define SP_D 0x24 -#define SP_F 0x28 -#define SP_G 0x30 - -#define SP_ENTER 0xC1 -#define SP_L 0xC2 -#define SP_K 0xC4 -#define SP_J 0xC8 -#define SP_H 0xD0 - -#define SP_CAPS 0x01 -#define SP_Z 0x02 -#define SP_X 0x04 -#define SP_C 0x08 -#define SP_V 0x10 - -#define SP_SPACE 0xE1 -#define SP_SYMBOL 0xE2 -#define SP_M 0xE4 -#define SP_N 0xE8 -#define SP_B 0xF0 - -#define SP_BANG (SP_SYMBOL<<8) | SP_1 -#define SP_AT (SP_SYMBOL<<8) | SP_2 -#define SP_HASH (SP_SYMBOL<<8) | SP_3 -#define SP_DOLLAR (SP_SYMBOL<<8) | SP_4 -#define SP_PERCEN (SP_SYMBOL<<8) | SP_5 -#define SP_AMP (SP_SYMBOL<<8) | SP_6 -#define SP_APOSTRO (SP_SYMBOL<<8) | SP_7 -#define SP_PAROPEN (SP_SYMBOL<<8) | SP_8 -#define SP_PARCLOS (SP_SYMBOL<<8) | SP_9 -#define SP_UNDERSC (SP_SYMBOL<<8) | SP_0 -#define SP_LESS (SP_SYMBOL<<8) | SP_R -#define SP_LESSEQ (SP_SYMBOL<<8) | SP_Q -#define SP_GREATER (SP_SYMBOL<<8) | SP_T -#define SP_GREATEQ (SP_SYMBOL<<8) | SP_E -#define SP_NOTEQ (SP_SYMBOL<<8) | SP_W -#define SP_BRAOPEN (SP_SYMBOL<<8) | SP_Y -#define SP_BRACLOS (SP_SYMBOL<<8) | SP_U -#define SP_SEMICOL (SP_SYMBOL<<8) | SP_O -#define SP_QUOTE (SP_SYMBOL<<8) | SP_P -#define SP_TILDE (SP_SYMBOL<<8) | SP_A -#define SP_PIPE (SP_SYMBOL<<8) | SP_S -#define SP_BACKSLA (SP_SYMBOL<<8) | SP_D -#define SP_CUROPEN (SP_SYMBOL<<8) | SP_F -#define SP_CURCLOS (SP_SYMBOL<<8) | SP_G -#define SP_CARET (SP_SYMBOL<<8) | SP_H -#define SP_MINUS (SP_SYMBOL<<8) | SP_J -#define SP_PLUS (SP_SYMBOL<<8) | SP_K -#define SP_EQUAL (SP_SYMBOL<<8) | SP_L -#define SP_COLON (SP_SYMBOL<<8) | SP_Z -#define SP_POUND (SP_SYMBOL<<8) | SP_X -#define SP_QUEST (SP_SYMBOL<<8) | SP_C -#define SP_SLASH (SP_SYMBOL<<8) | SP_V -#define SP_STAR (SP_SYMBOL<<8) | SP_B -#define SP_COMMA (SP_SYMBOL<<8) | SP_N -#define SP_DOT (SP_SYMBOL<<8) | SP_M - -#define SP_EXTEND (SP_CAPS<<8) | SP_SYMBOL -#define SP_EDIT (SP_CAPS<<8) | SP_1 -#define SP_CPSLOCK (SP_CAPS<<8) | SP_2 -#define SP_TRUE (SP_CAPS<<8) | SP_3 -#define SP_INVERSE (SP_CAPS<<8) | SP_4 -#define SP_LEFT (SP_CAPS<<8) | SP_5 -#define SP_DOWN (SP_CAPS<<8) | SP_6 -#define SP_UP (SP_CAPS<<8) | SP_7 -#define SP_RIGHT (SP_CAPS<<8) | SP_8 -#define SP_GRAPH (SP_CAPS<<8) | SP_9 -#define SP_DELETE (SP_CAPS<<8) | SP_0 -#define SP_BREAK (SP_CAPS<<8) | SP_SPACE - -// END of Spectrum keys definitions - -// Definitions for additional signals generated by the keyboard core -// AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX -#define MODIFIER1 0x20 -#define MODIFIER2 0x40 -#define MODIFIER3 0x80 - -#define MRESET 0x80 -#define URESET 0x40 -#define NMI 0x20 - -#define JOYUP 0x10 -#define JOYDOWN 0x08 -#define JOYLEFT 0x04 -#define JOYRIGHT 0x02 -#define JOYFIRE 0x01 - -#define USER5 0x10 -#define USER4 0x08 -#define USER3 0x04 -#define USER2 0x02 -#define USER1 0x01 -// End of additional signals - -// A key can be pressed with up to three key modifiers -// which generates 8 combinations for each key -#define EXT 0x100 -#define MD1 0x200 -#define MD2 0x400 -#define MD3 0x800 - -// Scan code 2 list. First, non localized keys -#define PC_A 0x1C -#define PC_B 0x32 -#define PC_C 0x21 -#define PC_D 0x23 -#define PC_E 0x24 -#define PC_F 0x2B -#define PC_G 0x34 -#define PC_H 0x33 -#define PC_I 0x43 -#define PC_J 0x3B -#define PC_K 0x42 -#define PC_L 0x4B -#define PC_M 0x3A -#define PC_N 0x31 -#define PC_O 0x44 -#define PC_P 0x4D -#define PC_Q 0x15 -#define PC_R 0x2D -#define PC_S 0x1B -#define PC_T 0x2C -#define PC_U 0x3C -#define PC_V 0x2A -#define PC_W 0x1D -#define PC_X 0x22 -#define PC_Y 0x35 -#define PC_Z 0x1A - -#define PC_0 0x45 -#define PC_1 0x16 -#define PC_2 0x1E -#define PC_3 0x26 -#define PC_4 0x25 -#define PC_5 0x2E -#define PC_6 0x36 -#define PC_7 0x3D -#define PC_8 0x3E -#define PC_9 0x46 - -#define PC_F1 0x05 -#define PC_F2 0x06 -#define PC_F3 0x04 -#define PC_F4 0x0C -#define PC_F5 0x03 -#define PC_F6 0x0B -#define PC_F7 0x83 -#define PC_F8 0x0A -#define PC_F9 0x01 -#define PC_F10 0x09 -#define PC_F11 0x78 -#define PC_F12 0x07 - -#define PC_ESC 0x76 -#define PC_SPACE 0x29 -#define PC_LCTRL 0x14 -#define PC_RCTRL 0x14 | EXT -#define PC_LSHIFT 0x12 -#define PC_RSHIFT 0x59 -#define PC_LALT 0x11 -#define PC_RALT 0x11 | EXT -#define PC_LWIN 0x1F | EXT -#define PC_RWIN 0x27 | EXT -#define PC_APPS 0x2F | EXT - -#define PC_TAB 0x0D -#define PC_CPSLOCK 0x58 -#define PC_SCRLOCK 0x7E - -#define PC_INSERT 0x70 | EXT -#define PC_DELETE 0x71 | EXT -#define PC_HOME 0x6C | EXT -#define PC_END 0x69 | EXT -#define PC_PGUP 0x7D | EXT -#define PC_PGDOWN 0x7A | EXT -#define PC_BKSPACE 0x66 -#define PC_ENTER 0x5A -#define PC_UP 0x75 | EXT -#define PC_DOWN 0x72 | EXT -#define PC_LEFT 0x6B | EXT -#define PC_RIGHT 0x74 | EXT - -#define PC_NUMLOCK 0x77 -#define PC_KP_DIVIS 0x4A | EXT -#define PC_KP_MULT 0x7C -#define PC_KP_MINUS 0x7B -#define PC_KP_PLUS 0x79 -#define PC_KP_ENTER 0x5A | EXT -#define PC_KP_DOT 0x71 -#define PC_KP_0 0x70 -#define PC_KP_1 0x69 -#define PC_KP_2 0x72 -#define PC_KP_3 0x7A -#define PC_KP_4 0x6B -#define PC_KP_5 0x73 -#define PC_KP_6 0x74 -#define PC_KP_7 0x6C -#define PC_KP_8 0x75 -#define PC_KP_9 0x7D - -// Localized keyboards start to differenciate from here - -// Localized keyboard ES (Spain) -#define PC_BACKSLA 0x0E -#define PC_APOSTRO 0x4E -#define PC_OPNBANG 0x55 -#define PC_GRAVEAC 0x54 -#define PC_PLUS 0x5B -#define PC_EGNE 0x4C -#define PC_ACUTEAC 0x52 -#define PC_CEDILLA 0x5D -#define PC_LESS 0x61 -#define PC_COMMA 0x41 -#define PC_DOT 0x49 -#define PC_MINUS 0x4A - -#define MAP(pc,sp,rj,mu) { \ - rom[(pc)*4] = (((sp)>>8)&0xFF); \ - rom[(pc)*4+1] = (((sp))&0xFF); \ - rom[(pc)*4+2] = (rj); \ - rom[(pc)*4+3] = (mu); \ - } - -#define MAPANY(pc,sp,rj,mu) { \ - MAP(pc,sp,rj,mu); \ - MAP(MD1|pc,sp,rj,mu); \ - MAP(MD2|pc,sp,rj,mu); \ - MAP(MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|pc,sp,rj,mu); \ - MAP(MD1|MD3|pc,sp,rj,mu); \ - MAP(MD2|MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|MD3|pc,sp,rj,mu); \ - } - -#define CLEANMAP { \ - int i; \ - for (i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - rom[i] = 0; \ - } -#define SAVEMAPHEX(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"w"); \ - for(i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - fprintf(f,"%.2X\n",rom[i]); \ - fclose(f); \ - } - -#define SAVEMAPBIN(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"wb"); \ - fwrite (rom, 1, sizeof(rom), f); \ - fclose(f); \ - } - -int main() -{ - BYTE rom[16384]; - - CLEANMAP; - - MAPANY(PC_LSHIFT,SP_CAPS,0,0); - MAPANY(PC_RSHIFT,SP_CAPS,0,0); - MAPANY(PC_LCTRL,SP_SYMBOL,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_RCTRL,SP_SYMBOL,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_LALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - MAPANY(PC_RALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - - // Basic mapping: each key from PC is mapped to a key in the Spectrum - MAPANY(PC_1,SP_1,0,0); - MAPANY(PC_2,SP_2,0,0); - MAPANY(PC_3,SP_3,0,0); - MAPANY(PC_4,SP_4,0,0); - MAPANY(PC_5,SP_5,0,0); - MAPANY(PC_6,SP_6,0,0); - MAPANY(PC_7,SP_7,0,0); - MAPANY(PC_8,SP_8,0,0); - MAPANY(PC_9,SP_9,0,0); - MAPANY(PC_0,SP_0,0,0); - - MAPANY(PC_Q,SP_Q,0,0); - MAPANY(PC_W,SP_W,0,0); - MAPANY(PC_E,SP_E,0,0); - MAPANY(PC_R,SP_R,0,0); - MAPANY(PC_T,SP_T,0,0); - MAPANY(PC_Y,SP_Y,0,0); - MAPANY(PC_U,SP_U,0,0); - MAPANY(PC_I,SP_I,0,0); - MAPANY(PC_O,SP_O,0,0); - MAPANY(PC_P,SP_P,0,0); - MAPANY(PC_A,SP_A,0,0); - MAPANY(PC_S,SP_S,0,0); - MAPANY(PC_D,SP_D,0,0); - MAPANY(PC_F,SP_F,0,0); - MAPANY(PC_G,SP_G,0,0); - MAPANY(PC_H,SP_H,0,0); - MAPANY(PC_J,SP_J,0,0); - MAPANY(PC_K,SP_K,0,0); - MAPANY(PC_L,SP_L,0,0); - MAPANY(PC_Z,SP_Z,0,0); - MAPANY(PC_X,SP_X,0,0); - MAPANY(PC_C,SP_C,0,0); - MAPANY(PC_V,SP_V,0,0); - MAPANY(PC_B,SP_B,0,0); - MAPANY(PC_N,SP_N,0,0); - MAPANY(PC_M,SP_M,0,0); - - MAPANY(PC_SPACE,SP_SPACE,0,0); - MAPANY(PC_ENTER,SP_ENTER,0,0); - MAPANY(PC_ESC,SP_BREAK,0,0); - MAPANY(PC_CPSLOCK,SP_CPSLOCK,0,0); - MAPANY(PC_TAB,SP_EXTEND,0,0); - MAP(PC_BKSPACE,SP_DELETE,0,0); - MAPANY(PC_UP,SP_UP,0,0); - MAPANY(PC_DOWN,SP_DOWN,0,0); - MAPANY(PC_LEFT,SP_LEFT,0,0); - MAPANY(PC_RIGHT,SP_RIGHT,0,0); - MAPANY(PC_F2,SP_EDIT,0,0); - MAPANY(PC_F3,SP_TRUE,0,0); - MAPANY(PC_F4,SP_INVERSE,0,0); - MAP(PC_F5|MD2|MD3,0,NMI,0); // Ctrl-Alt-F5 for NMI - MAPANY(PC_F10,SP_GRAPH,0,0); // F10 habilita el modo gráfico. Esto es para Antonio, para la BIOS - MAP(PC_DELETE|MD2|MD3,0,URESET,0); // - MAP(PC_KP_DOT|MD2|MD3,0,URESET,0); // Ctrl-Alt-Del for user reset - MAP(PC_BKSPACE|MD2|MD3,0,MRESET,0); // Ctrl-Alt-BkSpace for master reset - - //keypad - MAPANY(PC_KP_1,SP_1,0,0); - MAPANY(PC_KP_2,SP_2,0,0); - MAPANY(PC_KP_3,SP_3,0,0); - MAPANY(PC_KP_4,SP_4,0,0); - MAPANY(PC_KP_5,SP_5,0,0); - MAPANY(PC_KP_6,SP_6,0,0); - MAPANY(PC_KP_7,SP_7,0,0); - MAPANY(PC_KP_8,SP_8,0,0); - MAPANY(PC_KP_9,SP_9,0,0); - MAPANY(PC_KP_0,SP_0,0,0); - MAPANY(PC_KP_DIVIS,SP_SLASH,0,0); - MAPANY(PC_KP_MULT,SP_STAR,0,0); - MAPANY(PC_KP_MINUS,SP_MINUS,0,0); - MAPANY(PC_KP_PLUS,SP_PLUS,0,0); - MAPANY(PC_KP_ENTER,SP_ENTER,0,0); - MAPANY(PC_KP_DOT,SP_DOT,0,0); - - MAPANY(PC_BACKSLA,SP_COLON,0,0); - MAPANY(PC_APOSTRO,SP_DOLLAR,0,0); - MAPANY(PC_OPNBANG,SP_EQUAL,0,0); - MAPANY(PC_GRAVEAC,SP_PAROPEN,0,0); - MAPANY(PC_PLUS,SP_PARCLOS,0,0); - MAPANY(PC_EGNE,SP_SEMICOL,0,0); - MAPANY(PC_ACUTEAC,SP_QUOTE,0,0); - MAPANY(PC_COMMA,SP_COMMA,0,0); - MAPANY(PC_DOT,SP_DOT,0,0); - MAPANY(PC_MINUS,SP_SLASH,0,0); - - MAPANY(PC_HOME,0,JOYUP,0); - MAPANY(PC_END,0,JOYDOWN,0); - MAPANY(PC_DELETE,0,JOYLEFT,0); - MAPANY(PC_PGDOWN,0,JOYRIGHT,0); - -// MAP(PC_F12,0,0,USER1); // Evento de usuario 1 - - // End of mapping. Save .HEX file for Verilog - SAVEMAPHEX("keyb_av_hex.txt"); - // And map file for loading from ESXDOS - SAVEMAPBIN("keymaps\\AV"); -} diff --git a/cores/Spectrum/genkeybmap_es.c b/cores/Spectrum/genkeybmap_es.c deleted file mode 100644 index 3e9daf2..0000000 --- a/cores/Spectrum/genkeybmap_es.c +++ /dev/null @@ -1,492 +0,0 @@ -#include -#include - -typedef unsigned char BYTE; -/* - 8 8 3 5 3 5 -AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX - -AAA = semifila del teclado a modificar | esta información está -DDDDD = dato (AND negado con lo que haya) de esa semifila | repetida para dos teclas -MRN = Master reset, Reset de usuario, NMI -JJJJJ = estado del joystick al pulsar tecla. Posiciones UDLRX -MMM = la tecla es un modificador -XXXXX = Reservado para uso futuro - -Ej: en la dirección de memoria correspondiente al código de la tecla ESC, -que correspondería a la pulsación simultánea de CAPS SHIFT+SPACE, pondríamos: -00000001 11100001 000 00000 000 00000 -Esto es: se activan las semifilas 0 y 7, y en cada una, se activa el bit 0 - -256 codigos + E0 = 512 codigos -SHIFT, CTRL, ALT = 8 combinaciones - -512*8=4096 direcciones x 32 bits = 16384 bytes -En el core se dispondrá como una memoria de 16384x8 bits - -Cada tecla ocupará cuatro direcciones consecutivas. -D+0 : tecla1 (o 0 si no la hay) -D+1 : tecla2 (o 0 si no la hay) -D+2 : señales de reset y joystick, 0 si no hay -D+3 : modificadores y señales de usuario, 0 si no hay -*/ - -// You shouldn't have to touch these defs unless your Spectrum has a different keyboard -// layout (because, for example, you are using a different ROM - -#define SP_1 0x61 -#define SP_2 0x62 -#define SP_3 0x64 -#define SP_4 0x68 -#define SP_5 0x70 - -#define SP_0 0x81 -#define SP_9 0x82 -#define SP_8 0x84 -#define SP_7 0x88 -#define SP_6 0x90 - -#define SP_Q 0x41 -#define SP_W 0x42 -#define SP_E 0x44 -#define SP_R 0x48 -#define SP_T 0x50 - -#define SP_P 0xA1 -#define SP_O 0xA2 -#define SP_I 0xA4 -#define SP_U 0xA8 -#define SP_Y 0xB0 - -#define SP_A 0x21 -#define SP_S 0x22 -#define SP_D 0x24 -#define SP_F 0x28 -#define SP_G 0x30 - -#define SP_ENTER 0xC1 -#define SP_L 0xC2 -#define SP_K 0xC4 -#define SP_J 0xC8 -#define SP_H 0xD0 - -#define SP_CAPS 0x01 -#define SP_Z 0x02 -#define SP_X 0x04 -#define SP_C 0x08 -#define SP_V 0x10 - -#define SP_SPACE 0xE1 -#define SP_SYMBOL 0xE2 -#define SP_M 0xE4 -#define SP_N 0xE8 -#define SP_B 0xF0 - -#define SP_BANG (SP_SYMBOL<<8) | SP_1 -#define SP_AT (SP_SYMBOL<<8) | SP_2 -#define SP_HASH (SP_SYMBOL<<8) | SP_3 -#define SP_DOLLAR (SP_SYMBOL<<8) | SP_4 -#define SP_PERCEN (SP_SYMBOL<<8) | SP_5 -#define SP_AMP (SP_SYMBOL<<8) | SP_6 -#define SP_APOSTRO (SP_SYMBOL<<8) | SP_7 -#define SP_PAROPEN (SP_SYMBOL<<8) | SP_8 -#define SP_PARCLOS (SP_SYMBOL<<8) | SP_9 -#define SP_UNDERSC (SP_SYMBOL<<8) | SP_0 -#define SP_LESS (SP_SYMBOL<<8) | SP_R -#define SP_LESSEQ (SP_SYMBOL<<8) | SP_Q -#define SP_GREATER (SP_SYMBOL<<8) | SP_T -#define SP_GREATEQ (SP_SYMBOL<<8) | SP_E -#define SP_NOTEQ (SP_SYMBOL<<8) | SP_W -#define SP_BRAOPEN (SP_SYMBOL<<8) | SP_Y -#define SP_BRACLOS (SP_SYMBOL<<8) | SP_U -#define SP_SEMICOL (SP_SYMBOL<<8) | SP_O -#define SP_QUOTE (SP_SYMBOL<<8) | SP_P -#define SP_TILDE (SP_SYMBOL<<8) | SP_A -#define SP_PIPE (SP_SYMBOL<<8) | SP_S -#define SP_BACKSLA (SP_SYMBOL<<8) | SP_D -#define SP_CUROPEN (SP_SYMBOL<<8) | SP_F -#define SP_CURCLOS (SP_SYMBOL<<8) | SP_G -#define SP_CARET (SP_SYMBOL<<8) | SP_H -#define SP_MINUS (SP_SYMBOL<<8) | SP_J -#define SP_PLUS (SP_SYMBOL<<8) | SP_K -#define SP_EQUAL (SP_SYMBOL<<8) | SP_L -#define SP_COLON (SP_SYMBOL<<8) | SP_Z -#define SP_POUND (SP_SYMBOL<<8) | SP_X -#define SP_QUEST (SP_SYMBOL<<8) | SP_C -#define SP_SLASH (SP_SYMBOL<<8) | SP_V -#define SP_STAR (SP_SYMBOL<<8) | SP_B -#define SP_COMMA (SP_SYMBOL<<8) | SP_N -#define SP_DOT (SP_SYMBOL<<8) | SP_M - -#define SP_EXTEND (SP_CAPS<<8) | SP_SYMBOL -#define SP_EDIT (SP_CAPS<<8) | SP_1 -#define SP_CPSLOCK (SP_CAPS<<8) | SP_2 -#define SP_TRUE (SP_CAPS<<8) | SP_3 -#define SP_INVERSE (SP_CAPS<<8) | SP_4 -#define SP_LEFT (SP_CAPS<<8) | SP_5 -#define SP_DOWN (SP_CAPS<<8) | SP_6 -#define SP_UP (SP_CAPS<<8) | SP_7 -#define SP_RIGHT (SP_CAPS<<8) | SP_8 -#define SP_GRAPH (SP_CAPS<<8) | SP_9 -#define SP_DELETE (SP_CAPS<<8) | SP_0 -#define SP_BREAK (SP_CAPS<<8) | SP_SPACE - -// END of Spectrum keys definitions - -// Definitions for additional signals generated by the keyboard core -// AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX -#define MODIFIER1 0x20 -#define MODIFIER2 0x40 -#define MODIFIER3 0x80 - -#define MRESET 0x80 -#define URESET 0x40 -#define NMI 0x20 - -#define JOYUP 0x10 -#define JOYDOWN 0x08 -#define JOYLEFT 0x04 -#define JOYRIGHT 0x02 -#define JOYFIRE 0x01 - -#define USER5 0x10 -#define USER4 0x08 -#define USER3 0x04 -#define USER2 0x02 -#define USER1 0x01 -// End of additional signals - -// A key can be pressed with up to three key modifiers -// which generates 8 combinations for each key -#define EXT 0x100 -#define MD1 0x200 -#define MD2 0x400 -#define MD3 0x800 - -// Scan code 2 list. First, non localized keys -#define PC_A 0x1C -#define PC_B 0x32 -#define PC_C 0x21 -#define PC_D 0x23 -#define PC_E 0x24 -#define PC_F 0x2B -#define PC_G 0x34 -#define PC_H 0x33 -#define PC_I 0x43 -#define PC_J 0x3B -#define PC_K 0x42 -#define PC_L 0x4B -#define PC_M 0x3A -#define PC_N 0x31 -#define PC_O 0x44 -#define PC_P 0x4D -#define PC_Q 0x15 -#define PC_R 0x2D -#define PC_S 0x1B -#define PC_T 0x2C -#define PC_U 0x3C -#define PC_V 0x2A -#define PC_W 0x1D -#define PC_X 0x22 -#define PC_Y 0x35 -#define PC_Z 0x1A - -#define PC_0 0x45 -#define PC_1 0x16 -#define PC_2 0x1E -#define PC_3 0x26 -#define PC_4 0x25 -#define PC_5 0x2E -#define PC_6 0x36 -#define PC_7 0x3D -#define PC_8 0x3E -#define PC_9 0x46 - -#define PC_F1 0x05 -#define PC_F2 0x06 -#define PC_F3 0x04 -#define PC_F4 0x0C -#define PC_F5 0x03 -#define PC_F6 0x0B -#define PC_F7 0x83 -#define PC_F8 0x0A -#define PC_F9 0x01 -#define PC_F10 0x09 -#define PC_F11 0x78 -#define PC_F12 0x07 - -#define PC_ESC 0x76 -#define PC_SPACE 0x29 -#define PC_LCTRL 0x14 -#define PC_RCTRL 0x14 | EXT -#define PC_LSHIFT 0x12 -#define PC_RSHIFT 0x59 -#define PC_LALT 0x11 -#define PC_RALT 0x11 | EXT -#define PC_LWIN 0x1F | EXT -#define PC_RWIN 0x27 | EXT -#define PC_APPS 0x2F | EXT - -#define PC_TAB 0x0D -#define PC_CPSLOCK 0x58 -#define PC_SCRLOCK 0x7E - -#define PC_INSERT 0x70 | EXT -#define PC_DELETE 0x71 | EXT -#define PC_HOME 0x6C | EXT -#define PC_END 0x69 | EXT -#define PC_PGUP 0x7D | EXT -#define PC_PGDOWN 0x7A | EXT -#define PC_BKSPACE 0x66 -#define PC_ENTER 0x5A -#define PC_UP 0x75 | EXT -#define PC_DOWN 0x72 | EXT -#define PC_LEFT 0x6B | EXT -#define PC_RIGHT 0x74 | EXT - -#define PC_NUMLOCK 0x77 -#define PC_KP_DIVIS 0x4A | EXT -#define PC_KP_MULT 0x7C -#define PC_KP_MINUS 0x7B -#define PC_KP_PLUS 0x79 -#define PC_KP_ENTER 0x5A | EXT -#define PC_KP_DOT 0x71 -#define PC_KP_0 0x70 -#define PC_KP_1 0x69 -#define PC_KP_2 0x72 -#define PC_KP_3 0x7A -#define PC_KP_4 0x6B -#define PC_KP_5 0x73 -#define PC_KP_6 0x74 -#define PC_KP_7 0x6C -#define PC_KP_8 0x75 -#define PC_KP_9 0x7D - -// Localized keyboards start to differenciate from here - -// Localized keyboard ES (Spain) -#define PC_BACKSLA 0x0E -#define PC_APOSTRO 0x4E -#define PC_OPNBANG 0x55 -#define PC_GRAVEAC 0x54 -#define PC_PLUS 0x5B -#define PC_EGNE 0x4C -#define PC_ACUTEAC 0x52 -#define PC_CEDILLA 0x5D -#define PC_LESS 0x61 -#define PC_COMMA 0x41 -#define PC_DOT 0x49 -#define PC_MINUS 0x4A - -#define MAP(pc,sp,rj,mu) { \ - rom[(pc)*4] = (((sp)>>8)&0xFF); \ - rom[(pc)*4+1] = (((sp))&0xFF); \ - rom[(pc)*4+2] = (rj); \ - rom[(pc)*4+3] = (mu); \ - } - -#define MAPANY(pc,sp,rj,mu) { \ - MAP(pc,sp,rj,mu); \ - MAP(MD1|pc,sp,rj,mu); \ - MAP(MD2|pc,sp,rj,mu); \ - MAP(MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|pc,sp,rj,mu); \ - MAP(MD1|MD3|pc,sp,rj,mu); \ - MAP(MD2|MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|MD3|pc,sp,rj,mu); \ - } - -#define CLEANMAP { \ - int i; \ - for (i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - rom[i] = 0; \ - } -#define SAVEMAPHEX(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"w"); \ - for(i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - fprintf(f,"%.2X\n",rom[i]); \ - fclose(f); \ - } - -#define SAVEMAPBIN(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"wb"); \ - fwrite (rom, 1, sizeof(rom), f); \ - fclose(f); \ - } - - -int main() -{ - BYTE rom[16384]; - - CLEANMAP; - - MAPANY(PC_LSHIFT,0,0,MODIFIER1); // MD1 is SHIFT - MAPANY(PC_RSHIFT,0,0,MODIFIER1); // MD1 is SHIFT - MAPANY(PC_LCTRL,0,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_RCTRL,0,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_LALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - MAPANY(PC_RALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - - MAPANY(PC_LWIN,SP_CAPS,0,0); // CAPS SHIFT - MAPANY(PC_RWIN,SP_SYMBOL,0,0); // SYMBOL SHIFT - MAPANY(PC_APPS,SP_SYMBOL,0,0); // SYMBOL SHIFT - - // Basic mapping: each key from PC is mapped to a key in the Spectrum - MAP(PC_1,SP_1,0,0); - MAP(PC_2,SP_2,0,0); - MAP(PC_3,SP_3,0,0); - MAP(PC_4,SP_4,0,0); - MAP(PC_5,SP_5,0,0); - MAP(PC_6,SP_6,0,0); - MAP(PC_7,SP_7,0,0); - MAP(PC_8,SP_8,0,0); - MAP(PC_9,SP_9,0,0); - MAP(PC_0,SP_0,0,0); - - MAP(PC_Q,SP_Q,0,0); - MAP(PC_W,SP_W,0,0); - MAP(PC_E,SP_E,0,0); - MAP(PC_R,SP_R,0,0); - MAP(PC_T,SP_T,0,0); - MAP(PC_Y,SP_Y,0,0); - MAP(PC_U,SP_U,0,0); - MAP(PC_I,SP_I,0,0); - MAP(PC_O,SP_O,0,0); - MAP(PC_P,SP_P,0,0); - MAP(PC_A,SP_A,0,0); - MAP(PC_S,SP_S,0,0); - MAP(PC_D,SP_D,0,0); - MAP(PC_F,SP_F,0,0); - MAP(PC_G,SP_G,0,0); - MAP(PC_H,SP_H,0,0); - MAP(PC_J,SP_J,0,0); - MAP(PC_K,SP_K,0,0); - MAP(PC_L,SP_L,0,0); - MAP(PC_Z,SP_Z,0,0); - MAP(PC_X,SP_X,0,0); - MAP(PC_C,SP_C,0,0); - MAP(PC_V,SP_V,0,0); - MAP(PC_B,SP_B,0,0); - MAP(PC_N,SP_N,0,0); - MAP(PC_M,SP_M,0,0); - - MAP(MD1|PC_Q,SP_CAPS<<8|SP_Q,0,0); - MAP(MD1|PC_W,SP_CAPS<<8|SP_W,0,0); - MAP(MD1|PC_E,SP_CAPS<<8|SP_E,0,0); - MAP(MD1|PC_R,SP_CAPS<<8|SP_R,0,0); - MAP(MD1|PC_T,SP_CAPS<<8|SP_T,0,0); - MAP(MD1|PC_Y,SP_CAPS<<8|SP_Y,0,0); - MAP(MD1|PC_U,SP_CAPS<<8|SP_U,0,0); - MAP(MD1|PC_I,SP_CAPS<<8|SP_I,0,0); - MAP(MD1|PC_O,SP_CAPS<<8|SP_O,0,0); - MAP(MD1|PC_P,SP_CAPS<<8|SP_P,0,0); - MAP(MD1|PC_A,SP_CAPS<<8|SP_A,0,0); - MAP(MD1|PC_S,SP_CAPS<<8|SP_S,0,0); - MAP(MD1|PC_D,SP_CAPS<<8|SP_D,0,0); - MAP(MD1|PC_F,SP_CAPS<<8|SP_F,0,0); - MAP(MD1|PC_G,SP_CAPS<<8|SP_G,0,0); - MAP(MD1|PC_H,SP_CAPS<<8|SP_H,0,0); - MAP(MD1|PC_J,SP_CAPS<<8|SP_J,0,0); - MAP(MD1|PC_K,SP_CAPS<<8|SP_K,0,0); - MAP(MD1|PC_L,SP_CAPS<<8|SP_L,0,0); - MAP(MD1|PC_Z,SP_CAPS<<8|SP_Z,0,0); - MAP(MD1|PC_X,SP_CAPS<<8|SP_X,0,0); - MAP(MD1|PC_C,SP_CAPS<<8|SP_C,0,0); - MAP(MD1|PC_V,SP_CAPS<<8|SP_V,0,0); - MAP(MD1|PC_B,SP_CAPS<<8|SP_B,0,0); - MAP(MD1|PC_N,SP_CAPS<<8|SP_N,0,0); - MAP(MD1|PC_M,SP_CAPS<<8|SP_M,0,0); - - MAPANY(PC_SPACE,SP_SPACE,0,0); - MAPANY(PC_ENTER,SP_ENTER,0,0); - - //Complex mapping. This is for the spanish keyboard although many - //combos can be used with any other PC keyboard - MAPANY(PC_ESC,SP_BREAK,0,0); - MAPANY(PC_CPSLOCK,SP_CPSLOCK,0,0); - MAPANY(PC_TAB,SP_EXTEND,0,0); - MAP(PC_BKSPACE,SP_DELETE,0,0); - MAPANY(PC_UP,SP_UP,0,0); - MAPANY(PC_DOWN,SP_DOWN,0,0); - MAPANY(PC_LEFT,SP_LEFT,0,0); - MAPANY(PC_RIGHT,SP_RIGHT,0,0); - MAPANY(PC_F2,SP_EDIT,0,0); - - MAP(PC_F5|MD2|MD3,0,NMI,0); // Ctrl-Alt-F5 for NMI - MAP(PC_F10,SP_GRAPH,0,0); // F10 habilita el modo gráfico. Esto es para Antonio, para la BIOS - MAP(PC_DELETE|MD2|MD3,0,URESET,0); // - MAP(PC_KP_DOT|MD2|MD3,0,URESET,0); // Ctrl-Alt-Del for user reset - MAP(PC_BKSPACE|MD2|MD3,0,MRESET,0); // Ctrl-Alt-BkSpace for master reset - - //keypad - MAPANY(PC_KP_DIVIS,SP_SLASH,0,0); - MAPANY(PC_KP_MULT,SP_STAR,0,0); - MAPANY(PC_KP_MINUS,SP_MINUS,0,0); - MAPANY(PC_KP_PLUS,SP_PLUS,0,0); - MAPANY(PC_KP_ENTER,SP_ENTER,0,0); - - // a 8-way keyboard joystick on the keypad - MAPANY(PC_KP_7,0,JOYUP|JOYLEFT,0); - MAPANY(PC_KP_8,0,JOYUP,0); - MAPANY(PC_KP_9,0,JOYUP|JOYRIGHT,0); - MAPANY(PC_KP_4,0,JOYLEFT,0); - MAPANY(PC_KP_5,0,JOYDOWN,0); - MAPANY(PC_KP_6,0,JOYRIGHT,0); - MAPANY(PC_KP_1,0,JOYDOWN|JOYLEFT,0); - MAPANY(PC_KP_2,0,JOYDOWN,0); - MAPANY(PC_KP_3,0,JOYDOWN|JOYRIGHT,0); - - //Some shift+key mappings for the ES keyboard - MAP(MD1|PC_1,SP_BANG,0,0); - MAP(MD1|PC_2,SP_QUOTE,0,0); - MAP(MD1|PC_3,SP_HASH,0,0); - MAP(MD1|PC_4,SP_DOLLAR,0,0); - MAP(MD1|PC_5,SP_PERCEN,0,0); - MAP(MD1|PC_6,SP_AMP,0,0); - MAP(MD1|PC_7,SP_SLASH,0,0); - MAP(MD1|PC_8,SP_PAROPEN,0,0); - MAP(MD1|PC_9,SP_PARCLOS,0,0); - MAP(MD1|PC_0,SP_EQUAL,0,0); - MAP(PC_APOSTRO,SP_APOSTRO,0,0); - MAP(MD1|PC_APOSTRO,SP_QUEST,0,0); - MAP(PC_GRAVEAC,SP_POUND,0,0); - MAP(MD1|PC_GRAVEAC,SP_CARET,0,0); - MAP(PC_PLUS,SP_PLUS,0,0); - MAP(MD1|PC_PLUS,SP_STAR,0,0); - MAP(PC_ACUTEAC,SP_CUROPEN,0,0); - MAP(MD1|PC_ACUTEAC,SP_CUROPEN,0,0); - MAP(PC_ACUTEAC,SP_CUROPEN,0,0); - MAP(MD1|PC_ACUTEAC,SP_CUROPEN,0,0); - MAP(PC_CEDILLA,SP_CURCLOS,0,0); - MAP(MD1|PC_CEDILLA,SP_QUOTE,0,0); - MAP(PC_COMMA,SP_COMMA,0,0); - MAP(MD1|PC_COMMA,SP_SEMICOL,0,0); - MAP(PC_DOT,SP_DOT,0,0); - MAP(MD1|PC_DOT,SP_COLON,0,0); - MAP(PC_MINUS,SP_MINUS,0,0); - MAP(MD1|PC_MINUS,SP_UNDERSC,0,0); - MAP(PC_BACKSLA,SP_BACKSLA,0,0); - MAP(MD1|PC_BACKSLA,SP_BACKSLA,0,0); - MAP(PC_EGNE,SP_TILDE,0,0); - MAP(PC_LESS,SP_LESS,0,0); - MAP(MD1|PC_LESS,SP_GREATER,0,0); - MAP(MD2|PC_LESS,SP_LESSEQ,0,0); - MAP(MD2|MD1|PC_LESS,SP_GREATEQ,0,0); - MAP(MD3|PC_LESS,SP_NOTEQ,0,0); - MAP(MD3|MD1|PC_LESS,SP_NOTEQ,0,0); - MAP(MD3|MD2|PC_LESS,SP_NOTEQ,0,0); - MAP(MD3|MD2|MD1|PC_LESS,SP_NOTEQ,0,0); - - MAP(PC_F12,0,0,USER1); // Evento de usuario 1 - MAP(PC_F2|MD2,0,0,USER2); // Evento de usuario 2 = Core 2 (Ctrl+F2) - - // End of mapping. Save .HEX file for Verilog - SAVEMAPHEX("keyb_es_hex.txt"); - // And map file for loading from ESXDOS - SAVEMAPBIN("keymaps\\ES"); -} diff --git a/cores/Spectrum/genkeybmap_us.c b/cores/Spectrum/genkeybmap_us.c deleted file mode 100644 index 1655c70..0000000 --- a/cores/Spectrum/genkeybmap_us.c +++ /dev/null @@ -1,482 +0,0 @@ -#include -#include - -typedef unsigned char BYTE; -/* - 8 8 3 5 3 5 -AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX - -AAA = semifila del teclado a modificar | esta información está -DDDDD = dato (AND negado con lo que haya) de esa semifila | repetida para dos teclas -MRN = Master reset, Reset de usuario, NMI -JJJJJ = estado del joystick al pulsar tecla. Posiciones UDLRX -MMM = la tecla es un modificador -XXXXX = Reservado para uso futuro - -Ej: en la dirección de memoria correspondiente al código de la tecla ESC, -que correspondería a la pulsación simultánea de CAPS SHIFT+SPACE, pondríamos: -00000001 11100001 000 00000 000 00000 -Esto es: se activan las semifilas 0 y 7, y en cada una, se activa el bit 0 - -256 codigos + E0 = 512 codigos -SHIFT, CTRL, ALT = 8 combinaciones - -512*8=4096 direcciones x 32 bits = 16384 bytes -En el core se dispondrá como una memoria de 16384x8 bits - -Cada tecla ocupará cuatro direcciones consecutivas. -D+0 : tecla1 (o 0 si no la hay) -D+1 : tecla2 (o 0 si no la hay) -D+2 : señales de reset y joystick, 0 si no hay -D+3 : modificadores y señales de usuario, 0 si no hay -*/ - -// You shouldn't have to touch these defs unless your Spectrum has a different keyboard -// layout (because, for example, you are using a different ROM - -#define SP_1 0x61 -#define SP_2 0x62 -#define SP_3 0x64 -#define SP_4 0x68 -#define SP_5 0x70 - -#define SP_0 0x81 -#define SP_9 0x82 -#define SP_8 0x84 -#define SP_7 0x88 -#define SP_6 0x90 - -#define SP_Q 0x41 -#define SP_W 0x42 -#define SP_E 0x44 -#define SP_R 0x48 -#define SP_T 0x50 - -#define SP_P 0xA1 -#define SP_O 0xA2 -#define SP_I 0xA4 -#define SP_U 0xA8 -#define SP_Y 0xB0 - -#define SP_A 0x21 -#define SP_S 0x22 -#define SP_D 0x24 -#define SP_F 0x28 -#define SP_G 0x30 - -#define SP_ENTER 0xC1 -#define SP_L 0xC2 -#define SP_K 0xC4 -#define SP_J 0xC8 -#define SP_H 0xD0 - -#define SP_CAPS 0x01 -#define SP_Z 0x02 -#define SP_X 0x04 -#define SP_C 0x08 -#define SP_V 0x10 - -#define SP_SPACE 0xE1 -#define SP_SYMBOL 0xE2 -#define SP_M 0xE4 -#define SP_N 0xE8 -#define SP_B 0xF0 - -#define SP_BANG (SP_SYMBOL<<8) | SP_1 -#define SP_AT (SP_SYMBOL<<8) | SP_2 -#define SP_HASH (SP_SYMBOL<<8) | SP_3 -#define SP_DOLLAR (SP_SYMBOL<<8) | SP_4 -#define SP_PERCEN (SP_SYMBOL<<8) | SP_5 -#define SP_AMP (SP_SYMBOL<<8) | SP_6 -#define SP_APOSTRO (SP_SYMBOL<<8) | SP_7 -#define SP_PAROPEN (SP_SYMBOL<<8) | SP_8 -#define SP_PARCLOS (SP_SYMBOL<<8) | SP_9 -#define SP_UNDERSC (SP_SYMBOL<<8) | SP_0 -#define SP_LESS (SP_SYMBOL<<8) | SP_R -#define SP_LESSEQ (SP_SYMBOL<<8) | SP_Q -#define SP_GREATER (SP_SYMBOL<<8) | SP_T -#define SP_GREATEQ (SP_SYMBOL<<8) | SP_E -#define SP_NOTEQ (SP_SYMBOL<<8) | SP_W -#define SP_BRAOPEN (SP_SYMBOL<<8) | SP_Y -#define SP_BRACLOS (SP_SYMBOL<<8) | SP_U -#define SP_SEMICOL (SP_SYMBOL<<8) | SP_O -#define SP_QUOTE (SP_SYMBOL<<8) | SP_P -#define SP_TILDE (SP_SYMBOL<<8) | SP_A -#define SP_PIPE (SP_SYMBOL<<8) | SP_S -#define SP_BACKSLA (SP_SYMBOL<<8) | SP_D -#define SP_CUROPEN (SP_SYMBOL<<8) | SP_F -#define SP_CURCLOS (SP_SYMBOL<<8) | SP_G -#define SP_CARET (SP_SYMBOL<<8) | SP_H -#define SP_MINUS (SP_SYMBOL<<8) | SP_J -#define SP_PLUS (SP_SYMBOL<<8) | SP_K -#define SP_EQUAL (SP_SYMBOL<<8) | SP_L -#define SP_COLON (SP_SYMBOL<<8) | SP_Z -#define SP_POUND (SP_SYMBOL<<8) | SP_X -#define SP_QUEST (SP_SYMBOL<<8) | SP_C -#define SP_SLASH (SP_SYMBOL<<8) | SP_V -#define SP_STAR (SP_SYMBOL<<8) | SP_B -#define SP_COMMA (SP_SYMBOL<<8) | SP_N -#define SP_DOT (SP_SYMBOL<<8) | SP_M - -#define SP_EXTEND (SP_CAPS<<8) | SP_SYMBOL -#define SP_EDIT (SP_CAPS<<8) | SP_1 -#define SP_CPSLOCK (SP_CAPS<<8) | SP_2 -#define SP_TRUE (SP_CAPS<<8) | SP_3 -#define SP_INVERSE (SP_CAPS<<8) | SP_4 -#define SP_LEFT (SP_CAPS<<8) | SP_5 -#define SP_DOWN (SP_CAPS<<8) | SP_6 -#define SP_UP (SP_CAPS<<8) | SP_7 -#define SP_RIGHT (SP_CAPS<<8) | SP_8 -#define SP_GRAPH (SP_CAPS<<8) | SP_9 -#define SP_DELETE (SP_CAPS<<8) | SP_0 -#define SP_BREAK (SP_CAPS<<8) | SP_SPACE - -// END of Spectrum keys definitions - -// Definitions for additional signals generated by the keyboard core -// AAADDDDD AAADDDDD MRN JJJJJ MMM XXXXX -#define MODIFIER1 0x20 -#define MODIFIER2 0x40 -#define MODIFIER3 0x80 - -#define MRESET 0x80 -#define URESET 0x40 -#define NMI 0x20 - -#define JOYUP 0x10 -#define JOYDOWN 0x08 -#define JOYLEFT 0x04 -#define JOYRIGHT 0x02 -#define JOYFIRE 0x01 - -#define USER1 0x10 -#define USER2 0x08 -#define USER3 0x04 -#define USER4 0x02 -#define USER5 0x01 -// End of additional signals - -// A key can be pressed with up to three key modifiers -// which generates 8 combinations for each key -#define EXT 0x100 -#define MD1 0x200 -#define MD2 0x400 -#define MD3 0x800 - -#define MAP(pc,sp,rj,mu) { \ - rom[(pc)*4] = (((sp)>>8)&0xFF); \ - rom[(pc)*4+1] = (((sp))&0xFF); \ - rom[(pc)*4+2] = (rj); \ - rom[(pc)*4+3] = (mu); \ - } - -#define MAPANY(pc,sp,rj,mu) { \ - MAP(pc,sp,rj,mu); \ - MAP(MD1|pc,sp,rj,mu); \ - MAP(MD2|pc,sp,rj,mu); \ - MAP(MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|pc,sp,rj,mu); \ - MAP(MD1|MD3|pc,sp,rj,mu); \ - MAP(MD2|MD3|pc,sp,rj,mu); \ - MAP(MD1|MD2|MD3|pc,sp,rj,mu); \ - } - -#define CLEANMAP { \ - int i; \ - for (i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - rom[i] = 0; \ - } -#define SAVEMAPHEX(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"w"); \ - for(i=0;i<(sizeof(rom)/sizeof(rom[0]));i++) \ - fprintf(f,"%.2X\n",rom[i]); \ - fclose(f); \ - } - -#define SAVEMAPBIN(name) { \ - FILE *f; \ - int i; \ - f=fopen(name,"wb"); \ - fwrite (rom, 1, sizeof(rom), f); \ - fclose(f); \ - } - -// --------------- YOU MAY CUSTOMIZE FROM HERE ------------------------ - -// Scan code 2 list. First, non localized keys -#define PC_A 0x1C -#define PC_B 0x32 -#define PC_C 0x21 -#define PC_D 0x23 -#define PC_E 0x24 -#define PC_F 0x2B -#define PC_G 0x34 -#define PC_H 0x33 -#define PC_I 0x43 -#define PC_J 0x3B -#define PC_K 0x42 -#define PC_L 0x4B -#define PC_M 0x3A -#define PC_N 0x31 -#define PC_O 0x44 -#define PC_P 0x4D -#define PC_Q 0x15 -#define PC_R 0x2D -#define PC_S 0x1B -#define PC_T 0x2C -#define PC_U 0x3C -#define PC_V 0x2A -#define PC_W 0x1D -#define PC_X 0x22 -#define PC_Y 0x35 -#define PC_Z 0x1A - -#define PC_0 0x45 // also ) -#define PC_1 0x16 // also ! -#define PC_2 0x1E // also @ -#define PC_3 0x26 // also # -#define PC_4 0x25 // also $ -#define PC_5 0x2E // also % -#define PC_6 0x36 // also ^ -#define PC_7 0x3D // also & -#define PC_8 0x3E // also * -#define PC_9 0x46 // also ( - -#define PC_F1 0x05 -#define PC_F2 0x06 -#define PC_F3 0x04 -#define PC_F4 0x0C -#define PC_F5 0x03 -#define PC_F6 0x0B -#define PC_F7 0x83 -#define PC_F8 0x0A -#define PC_F9 0x01 -#define PC_F10 0x09 -#define PC_F11 0x78 -#define PC_F12 0x07 - -#define PC_ESC 0x76 -#define PC_SPACE 0x29 -#define PC_LCTRL 0x14 -#define PC_RCTRL 0x14 | EXT -#define PC_LSHIFT 0x12 -#define PC_RSHIFT 0x59 -#define PC_LALT 0x11 -#define PC_RALT 0x11 | EXT -#define PC_LWIN 0x1F | EXT -#define PC_RWIN 0x27 | EXT -#define PC_APPS 0x2F | EXT - -#define PC_TAB 0x0D -#define PC_CPSLOCK 0x58 -#define PC_SCRLOCK 0x7E - -#define PC_INSERT 0x70 | EXT -#define PC_DELETE 0x71 | EXT -#define PC_HOME 0x6C | EXT -#define PC_END 0x69 | EXT -#define PC_PGUP 0x7D | EXT -#define PC_PGDOWN 0x7A | EXT -#define PC_BKSPACE 0x66 -#define PC_ENTER 0x5A -#define PC_UP 0x75 | EXT -#define PC_DOWN 0x72 | EXT -#define PC_LEFT 0x6B | EXT -#define PC_RIGHT 0x74 | EXT - -#define PC_NUMLOCK 0x77 -#define PC_KP_DIVIS 0x4A | EXT -#define PC_KP_MULT 0x7C -#define PC_KP_MINUS 0x7B -#define PC_KP_PLUS 0x79 -#define PC_KP_ENTER 0x5A | EXT -#define PC_KP_DOT 0x71 -#define PC_KP_0 0x70 -#define PC_KP_1 0x69 -#define PC_KP_2 0x72 -#define PC_KP_3 0x7A -#define PC_KP_4 0x6B -#define PC_KP_5 0x73 -#define PC_KP_6 0x74 -#define PC_KP_7 0x6C -#define PC_KP_8 0x75 -#define PC_KP_9 0x7D - -// Localized keyboards usually start to differenciate from here - -// Localized keyboard US -#define PC_GRAVEAC 0x0E // also ~ -#define PC_MINUS 0x4E // also _ -#define PC_EQUAL 0x55 // also + -#define PC_BRAOPEN 0x54 // also { -#define PC_BRACLOS 0x5B // also } -#define PC_BACKSLA 0x5D // also | -#define PC_SEMICOL 0x4C // also : -#define PC_APOSTRO 0x52 // also " -#define PC_COMMA 0x41 // also < -#define PC_DOT 0x49 // also > -#define PC_SLASH 0x4A // also ? - - -int main() -{ - BYTE rom[16384]; - - CLEANMAP; - - MAPANY(PC_LSHIFT,0,0,MODIFIER1); // MD1 is SHIFT - MAPANY(PC_RSHIFT,0,0,MODIFIER1); // MD1 is SHIFT - MAPANY(PC_LCTRL,0,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_RCTRL,0,0,MODIFIER2); // MD2 is CTRL - MAPANY(PC_LALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - MAPANY(PC_RALT,0,JOYFIRE,MODIFIER3); // MD3 is ALT. Also is FIRE for keyboard joystick - - MAPANY(PC_LWIN,SP_CAPS,0,0); // CAPS SHIFT - MAPANY(PC_RWIN,SP_SYMBOL,0,0); // SYMBOL SHIFT - - // Basic mapping: each key from PC is mapped to a key in the Spectrum - MAP(PC_1,SP_1,0,0); - MAP(PC_2,SP_2,0,0); - MAP(PC_3,SP_3,0,0); - MAP(PC_4,SP_4,0,0); - MAP(PC_5,SP_5,0,0); - MAP(PC_6,SP_6,0,0); - MAP(PC_7,SP_7,0,0); - MAP(PC_8,SP_8,0,0); - MAP(PC_9,SP_9,0,0); - MAP(PC_0,SP_0,0,0); - - MAP(PC_Q,SP_Q,0,0); - MAP(PC_W,SP_W,0,0); - MAP(PC_E,SP_E,0,0); - MAP(PC_R,SP_R,0,0); - MAP(PC_T,SP_T,0,0); - MAP(PC_Y,SP_Y,0,0); - MAP(PC_U,SP_U,0,0); - MAP(PC_I,SP_I,0,0); - MAP(PC_O,SP_O,0,0); - MAP(PC_P,SP_P,0,0); - MAP(PC_A,SP_A,0,0); - MAP(PC_S,SP_S,0,0); - MAP(PC_D,SP_D,0,0); - MAP(PC_F,SP_F,0,0); - MAP(PC_G,SP_G,0,0); - MAP(PC_H,SP_H,0,0); - MAP(PC_J,SP_J,0,0); - MAP(PC_K,SP_K,0,0); - MAP(PC_L,SP_L,0,0); - MAP(PC_Z,SP_Z,0,0); - MAP(PC_X,SP_X,0,0); - MAP(PC_C,SP_C,0,0); - MAP(PC_V,SP_V,0,0); - MAP(PC_B,SP_B,0,0); - MAP(PC_N,SP_N,0,0); - MAP(PC_M,SP_M,0,0); - - // a letter key with shift (MD1) is like pressing CAPS SHIFT + letter - MAP(MD1|PC_Q,SP_CAPS<<8|SP_Q,0,0); - MAP(MD1|PC_W,SP_CAPS<<8|SP_W,0,0); - MAP(MD1|PC_E,SP_CAPS<<8|SP_E,0,0); - MAP(MD1|PC_R,SP_CAPS<<8|SP_R,0,0); - MAP(MD1|PC_T,SP_CAPS<<8|SP_T,0,0); - MAP(MD1|PC_Y,SP_CAPS<<8|SP_Y,0,0); - MAP(MD1|PC_U,SP_CAPS<<8|SP_U,0,0); - MAP(MD1|PC_I,SP_CAPS<<8|SP_I,0,0); - MAP(MD1|PC_O,SP_CAPS<<8|SP_O,0,0); - MAP(MD1|PC_P,SP_CAPS<<8|SP_P,0,0); - MAP(MD1|PC_A,SP_CAPS<<8|SP_A,0,0); - MAP(MD1|PC_S,SP_CAPS<<8|SP_S,0,0); - MAP(MD1|PC_D,SP_CAPS<<8|SP_D,0,0); - MAP(MD1|PC_F,SP_CAPS<<8|SP_F,0,0); - MAP(MD1|PC_G,SP_CAPS<<8|SP_G,0,0); - MAP(MD1|PC_H,SP_CAPS<<8|SP_H,0,0); - MAP(MD1|PC_J,SP_CAPS<<8|SP_J,0,0); - MAP(MD1|PC_K,SP_CAPS<<8|SP_K,0,0); - MAP(MD1|PC_L,SP_CAPS<<8|SP_L,0,0); - MAP(MD1|PC_Z,SP_CAPS<<8|SP_Z,0,0); - MAP(MD1|PC_X,SP_CAPS<<8|SP_X,0,0); - MAP(MD1|PC_C,SP_CAPS<<8|SP_C,0,0); - MAP(MD1|PC_V,SP_CAPS<<8|SP_V,0,0); - MAP(MD1|PC_B,SP_CAPS<<8|SP_B,0,0); - MAP(MD1|PC_N,SP_CAPS<<8|SP_N,0,0); - MAP(MD1|PC_M,SP_CAPS<<8|SP_M,0,0); - - MAPANY(PC_SPACE,SP_SPACE,0,0); - MAPANY(PC_ENTER,SP_ENTER,0,0); - - //Complex mapping. This is for the US keyboard although many - //combos can be used with any other PC keyboard - MAPANY(PC_ESC,SP_BREAK,0,0); - MAPANY(PC_CPSLOCK,SP_CPSLOCK,0,0); - MAPANY(PC_TAB,SP_EXTEND,0,0); - MAP(PC_BKSPACE,SP_DELETE,0,0); - MAPANY(PC_UP,SP_UP,0,0); - MAPANY(PC_DOWN,SP_DOWN,0,0); - MAPANY(PC_LEFT,SP_LEFT,0,0); - MAPANY(PC_RIGHT,SP_RIGHT,0,0); - MAPANY(PC_F2,SP_EDIT,0,0); - - MAP(PC_F5|MD2|MD3,0,NMI,0); // Ctrl-Alt-F5 for NMI - MAP(PC_F10,SP_GRAPH,0,0); // F10 habilita el modo gráfico. Esto es para Antonio, para la BIOS - MAP(PC_DELETE|MD2|MD3,0,URESET,0); // - MAP(PC_KP_DOT|MD2|MD3,0,URESET,0); // Ctrl-Alt-Del for user reset - MAP(PC_BKSPACE|MD2|MD3,0,MRESET,0); // Ctrl-Alt-BkSpace for master reset - - //keypad - MAPANY(PC_KP_DIVIS,SP_SLASH,0,0); - MAPANY(PC_KP_MULT,SP_STAR,0,0); - MAPANY(PC_KP_MINUS,SP_MINUS,0,0); - MAPANY(PC_KP_PLUS,SP_PLUS,0,0); - MAPANY(PC_KP_ENTER,SP_ENTER,0,0); - - // a 8-way keyboard joystick on the keypad - MAPANY(PC_KP_7,0,JOYUP|JOYLEFT,0); - MAPANY(PC_KP_8,0,JOYUP,0); - MAPANY(PC_KP_9,0,JOYUP|JOYRIGHT,0); - MAPANY(PC_KP_4,0,JOYLEFT,0); - MAPANY(PC_KP_5,0,JOYDOWN,0); - MAPANY(PC_KP_6,0,JOYRIGHT,0); - MAPANY(PC_KP_1,0,JOYDOWN|JOYLEFT,0); - MAPANY(PC_KP_2,0,JOYDOWN,0); - MAPANY(PC_KP_3,0,JOYDOWN|JOYRIGHT,0); - - //Some keys and shift+key mappings for the US keyboard - MAP(MD1|PC_1,SP_BANG,0,0); - MAP(MD1|PC_2,SP_AT,0,0); - MAP(MD1|PC_3,SP_HASH,0,0); - MAP(MD1|PC_4,SP_DOLLAR,0,0); - MAP(MD1|PC_5,SP_PERCEN,0,0); - MAP(MD1|PC_6,SP_CARET,0,0); - MAP(MD1|PC_7,SP_AMP,0,0); - MAP(MD1|PC_8,SP_STAR,0,0); - MAP(MD1|PC_9,SP_PAROPEN,0,0); - MAP(MD1|PC_0,SP_PARCLOS,0,0); - MAP(PC_MINUS,SP_MINUS,0,0); - MAP(MD1|PC_MINUS,SP_UNDERSC,0,0); - MAP(PC_EQUAL,SP_EQUAL,0,0); - MAP(MD1|PC_EQUAL,SP_PLUS,0,0); - MAP(PC_BRAOPEN,SP_BRAOPEN,0,0); - MAP(MD1|PC_BRAOPEN,SP_CUROPEN,0,0); - MAP(PC_BRACLOS,SP_BRACLOS,0,0); - MAP(MD1|PC_BRACLOS,SP_BRACLOS,0,0); - MAP(PC_BACKSLA,SP_BACKSLA,0,0); - MAP(MD1|PC_BACKSLA,SP_PIPE,0,0); - MAP(PC_APOSTRO,SP_APOSTRO,0,0); - MAP(MD1|PC_APOSTRO,SP_QUOTE,0,0); - MAP(PC_COMMA,SP_COMMA,0,0); - MAP(MD1|PC_COMMA,SP_LESS,0,0); - MAP(PC_DOT,SP_DOT,0,0); - MAP(MD1|PC_DOT,SP_GREATER,0,0); - MAP(PC_SLASH,SP_SLASH,0,0); - MAP(MD1|PC_SLASH,SP_QUEST,0,0); - - MAP(PC_F12,0,0,USER1); // Evento de usuario 1 - MAP(PC_F2|MD2,0,0,USER2); // Evento de usuario 2 = Core 2 (Ctrl+F2) - - // End of mapping. Save .HEX file for Verilog - //SAVEMAPHEX("keyb_us_hex.txt"); - // And map file for loading from ESXDOS - SAVEMAPBIN("keymaps\\US"); -} diff --git a/cores/Spectrum/keyb_av_hex.txt b/cores/Spectrum/keyb_av_hex.txt deleted file mode 100644 index 8fb89cd..0000000 --- a/cores/Spectrum/keyb_av_hex.txt +++ /dev/null @@ -1,16384 +0,0 @@ -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -81 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -20 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -64 -00 -00 -00 -00 -00 -00 -01 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -68 -00 -00 -01 -E2 -00 -00 -E2 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -01 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -41 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -22 -00 -00 -00 -21 -00 -00 -00 -42 -00 -00 -00 -62 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -04 -00 -00 -00 -24 -00 -00 -00 -44 -00 -00 -00 -68 -00 -00 -00 -64 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E1 -00 -00 -00 -10 -00 -00 -00 -28 -00 -00 -00 -50 -00 -00 -00 -48 -00 -00 -00 -70 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E8 -00 -00 -00 -F0 -00 -00 -00 -D0 -00 -00 -00 -30 -00 -00 -00 -B0 -00 -00 -00 -90 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E4 -00 -00 -00 -C8 -00 -00 -00 -A8 -00 -00 -00 -88 -00 -00 -00 -84 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E8 -00 -00 -00 -C4 -00 -00 -00 -A4 -00 -00 -00 -A2 -00 -00 -00 -81 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -E4 -00 -00 -E2 -10 -00 -00 -00 -C2 -00 -00 -E2 -A2 -00 -00 -00 -A1 -00 -00 -E2 -68 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -A1 -00 -00 -00 -00 -00 -00 -E2 -84 -00 -00 -E2 -C2 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -62 -00 -00 -00 -01 -00 -00 -00 -C1 -00 -00 -E2 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -61 -00 -00 -00 -00 -00 -00 -00 -68 -00 -00 -00 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -81 -00 -00 -E2 -E4 -00 -00 -00 -62 -00 -00 -00 -70 -00 -00 -00 -90 -00 -00 -00 -84 -00 -00 -01 -E1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -C4 -00 -00 -00 -64 -00 -00 -E2 -C8 -00 -00 -E2 -F0 -00 -00 -00 -82 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -80 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -E2 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -C1 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -00 -00 -00 -00 -00 -01 -70 -00 -00 -00 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -04 -00 -01 -90 -00 -00 -00 -00 -00 -00 -01 -84 -00 -00 -01 -88 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -02 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 diff --git a/cores/Spectrum/make.bat b/cores/Spectrum/make.bat index 82eb9a1..7a18687 100644 --- a/cores/Spectrum/make.bat +++ b/cores/Spectrum/make.bat @@ -1,6 +1,6 @@ -call xst -filter iseconfig/filter.filter -intstyle ise -ifn tld_zxuno.xst -ofn tld_zxuno.syr -call ngdbuild -filter iseconfig/filter.filter -intstyle ise -dd _ngo -nt timestamp -uc pines_zxuno.ucf -p xc6slx9-tqg144-2 tld_zxuno.ngc tld_zxuno.ngd -call map -filter iseconfig/filter.filter -intstyle ise -w -ol high -xe n -mt 2 -p xc6slx9-tqg144-2 -logic_opt off -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -ir off -pr off -lc off -power off -o tld_zxuno_map.ncd tld_zxuno.ngd tld_zxuno.pcf -call par -filter iseconfig/filter.filter -intstyle ise -w -ol high -xe n -mt 4 tld_zxuno_map.ncd tld_zxuno.ncd tld_zxuno.pcf -call trce -filter iseconfig/filter.filter -intstyle ise -v 3 -s 2 -n 3 -fastpaths -xml tld_zxuno.twx tld_zxuno.ncd -o tld_zxuno.twr tld_zxuno.pcf -ucf pines_zxuno.ucf -call bitgen -filter iseconfig/filter.filter -intstyle ise -w -g Binary:no -g Compress -g CRC:Enable -g Reset_on_err:No -g ConfigRate:2 -g ProgPin:PullUp -g TckPin:PullUp -g TdiPin:PullUp -g TdoPin:PullUp -g TmsPin:PullUp -g UnusedPin:PullDown -g UserID:0xFFFFFFFF -g ExtMasterCclk_en:Yes -g ExtMasterCclk_divide:50 -g SPI_buswidth:1 -g TIMER_CFG:0xFFFF -g multipin_wakeup:No -g StartUpClk:CClk -g DONE_cycle:4 -g GTS_cycle:5 -g GWE_cycle:6 -g LCK_cycle:NoWait -g Security:None -g DonePipe:No -g DriveDone:No -g en_sw_gsr:No -g drive_awake:No -g sw_clk:Startupclk -g sw_gwe_cycle:5 -g sw_gts_cycle:4 tld_zxuno.ncd +call xst -intstyle ise -ifn tld_zxuno.xst -ofn tld_zxuno.syr +call ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc pines_zxuno.ucf -p xc6slx9-tqg144-2 tld_zxuno.ngc tld_zxuno.ngd +call map -intstyle ise -w -ol high -xe n -mt 2 -p xc6slx9-tqg144-2 -logic_opt off -t 1 -xt 0 -register_duplication off -r 4 -global_opt off -ir off -pr off -lc off -power off -o tld_zxuno_map.ncd tld_zxuno.ngd tld_zxuno.pcf +call par -intstyle ise -w -ol high -xe n -mt 4 tld_zxuno_map.ncd tld_zxuno.ncd tld_zxuno.pcf +call trce -intstyle ise -v 3 -s 2 -n 3 -fastpaths -xml tld_zxuno.twx tld_zxuno.ncd -o tld_zxuno.twr tld_zxuno.pcf -ucf pines_zxuno.ucf +call bitgen -intstyle ise -w -g Binary:no -g Compress -g CRC:Enable -g Reset_on_err:No -g ConfigRate:2 -g ProgPin:PullUp -g TckPin:PullUp -g TdiPin:PullUp -g TdoPin:PullUp -g TmsPin:PullUp -g UnusedPin:PullDown -g UserID:0xFFFFFFFF -g ExtMasterCclk_en:Yes -g ExtMasterCclk_divide:50 -g SPI_buswidth:1 -g TIMER_CFG:0xFFFF -g multipin_wakeup:No -g StartUpClk:CClk -g DONE_cycle:4 -g GTS_cycle:5 -g GWE_cycle:6 -g LCK_cycle:NoWait -g Security:None -g DonePipe:No -g DriveDone:No -g en_sw_gsr:No -g drive_awake:No -g sw_clk:Startupclk -g sw_gwe_cycle:5 -g sw_gts_cycle:4 tld_zxuno.ncd diff --git a/cores/Spectrum/pantalla_ulatest3.hex b/cores/Spectrum/pantalla_ulatest3.hex deleted file mode 100644 index 5c16417..0000000 --- a/cores/Spectrum/pantalla_ulatest3.hex +++ /dev/null @@ -1,16384 +0,0 @@ -00 -01 -02 -03 -04 -05 -06 -07 -08 -09 -0A -0B -0C -0D -0E -0F -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -1A -1B -1C -1D -1E -1F -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -42 -40 -3C -00 -10 -00 -00 -10 -00 -3C -00 -20 -00 -00 -02 -7C -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -18 -08 -3C -3C -3C -00 -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -00 -18 -08 -3C -3C -7E -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -E7 -00 -F7 -E7 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -08 -7E -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -C3 -00 -F7 -C3 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -7E -3C -00 -00 -7E -7E -00 -81 -81 -00 -C3 -F7 -00 -F7 -F7 -00 -C3 -81 -00 -F7 -81 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -3C -18 -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -81 -00 -F7 -81 -00 -81 -81 -00 -7E -7E -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -42 -40 -42 -00 -38 -38 -38 -38 -00 -42 -00 -20 -44 -00 -02 -42 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -28 -18 -42 -42 -42 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -28 -18 -42 -42 -02 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -B9 -00 -E7 -B9 -00 -B9 -D7 -00 -E7 -D7 -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -18 -40 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BD -00 -E7 -BD -00 -B9 -BD -00 -E7 -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -40 -42 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -E7 -00 -E7 -E7 -00 -B9 -BF -00 -E7 -BF -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -40 -28 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BF -00 -E7 -BF -00 -B9 -FD -00 -E7 -FD -00 -BF -BF -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -42 -40 -42 -00 -10 -44 -40 -10 -00 -0C -00 -3C -44 -00 -02 -7C -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -28 -0C -02 -42 -00 -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -00 -08 -28 -0C -0C -04 -00 -00 -7C -7C -00 -83 -83 -00 -B5 -B5 -00 -D7 -B5 -00 -B5 -F7 -00 -D7 -F7 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -28 -7C -00 -00 -7C -7C -00 -83 -83 -00 -B5 -FD -00 -D7 -FD -00 -B5 -F3 -00 -D7 -F3 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -7C -0C -00 -00 -7C -7C -00 -83 -83 -00 -B5 -D7 -00 -D7 -D7 -00 -B5 -83 -00 -D7 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -7C -08 -00 -00 -7C -7C -00 -83 -83 -00 -B5 -83 -00 -D7 -83 -00 -B5 -FB -00 -D7 -FB -00 -83 -83 -00 -7C -7C -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -42 -40 -7E -00 -10 -78 -38 -10 -00 -02 -00 -22 -44 -00 -42 -42 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -48 -02 -3C -3E -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -08 -48 -02 -02 -08 -00 -00 -40 -40 -00 -BF -BF -00 -AD -AD -00 -B7 -AD -00 -AD -F7 -00 -B7 -F7 -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -48 -02 -00 -00 -40 -40 -00 -BF -BF -00 -AD -C3 -00 -B7 -C3 -00 -AD -FD -00 -B7 -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -02 -02 -00 -00 -40 -40 -00 -BF -BF -00 -AD -B7 -00 -B7 -B7 -00 -AD -FD -00 -B7 -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -42 -08 -00 -00 -40 -40 -00 -BF -BF -00 -AD -BD -00 -B7 -BD -00 -AD -F7 -00 -B7 -F7 -00 -BF -BF -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -42 -40 -42 -00 -10 -40 -04 -10 -00 -42 -00 -22 -3C -00 -42 -42 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -7E -42 -40 -02 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -08 -7E -42 -42 -10 -00 -00 -40 -40 -00 -BF -BF -00 -9D -9D -00 -81 -9D -00 -9D -F7 -00 -81 -F7 -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -7E -42 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BF -00 -81 -BF -00 -9D -BD -00 -81 -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -42 -42 -00 -00 -40 -40 -00 -BF -BF -00 -9D -81 -00 -81 -81 -00 -9D -BD -00 -81 -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -42 -08 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BD -00 -81 -BD -00 -9D -EF -00 -81 -EF -00 -BF -BF -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -3C -7E -42 -00 -0C -3C -78 -0C -00 -3C -00 -3C -04 -00 -3C -7C -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -3E -08 -3C -7E -3C -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -3E -08 -3C -3C -10 -00 -00 -40 -40 -00 -BF -BF -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -C1 -00 -F7 -C1 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -08 -3C -00 -00 -40 -40 -00 -BF -BF -00 -C3 -81 -00 -F7 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C3 -F7 -00 -F7 -F7 -00 -C3 -C3 -00 -F7 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -3C -3E -00 -00 -40 -40 -00 -BF -BF -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -EF -00 -F7 -EF -00 -BF -BF -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -38 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -18 -08 -3C -3C -3C -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -C3 -00 -F7 -C3 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -7E -7E -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -83 -00 -F7 -83 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -3C -7E -00 -00 -7E -7E -00 -81 -81 -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -87 -00 -F7 -87 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -3C -3C -3C -00 -00 -7E -7E -00 -81 -81 -00 -C3 -81 -00 -F7 -81 -00 -C3 -81 -00 -F7 -81 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -3C -18 -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -E7 -00 -81 -E7 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -3C -3C -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -C3 -00 -81 -C3 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -18 -7E -00 -00 -7E -7E -00 -81 -81 -00 -E7 -F7 -00 -81 -F7 -00 -E7 -81 -00 -81 -81 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -3C -7E -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -81 -00 -81 -81 -00 -81 -81 -00 -7E -7E -00 -00 -28 -18 -42 -40 -42 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BD -00 -E7 -BD -00 -B9 -BD -00 -E7 -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -02 -02 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BD -00 -E7 -BD -00 -B9 -BD -00 -E7 -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -42 -40 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BD -00 -E7 -BD -00 -B9 -BB -00 -E7 -BB -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -42 -42 -42 -00 -00 -40 -40 -00 -BF -BF -00 -B9 -BF -00 -E7 -BF -00 -B9 -BF -00 -E7 -BF -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -46 -28 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -B9 -00 -BF -B9 -00 -D7 -D7 -00 -BF -D7 -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -46 -42 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BD -00 -BF -BD -00 -D7 -BD -00 -BF -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -28 -02 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -E7 -00 -BF -E7 -00 -D7 -BF -00 -BF -BF -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -42 -40 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BF -00 -BF -BF -00 -D7 -FD -00 -BF -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -28 -0C -7C -42 -00 -00 -7C -7C -00 -83 -83 -00 -B5 -C3 -00 -D7 -C3 -00 -B5 -BD -00 -D7 -BD -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -04 -04 -00 -00 -7C -7C -00 -83 -83 -00 -B5 -BD -00 -D7 -BD -00 -B5 -83 -00 -D7 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -3C -7C -00 -00 -7C -7C -00 -83 -83 -00 -B5 -BF -00 -D7 -BF -00 -B5 -BD -00 -D7 -BD -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -0C -42 -0C -00 -00 -7C -7C -00 -83 -83 -00 -B5 -83 -00 -D7 -83 -00 -B5 -83 -00 -D7 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -4A -08 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -B5 -00 -83 -B5 -00 -F7 -F7 -00 -83 -F7 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -4A -42 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -FD -00 -83 -FD -00 -F7 -F3 -00 -83 -F3 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -08 -04 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -D7 -00 -83 -D7 -00 -F7 -83 -00 -83 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -02 -7C -00 -00 -7C -7C -00 -83 -83 -00 -F7 -83 -00 -83 -83 -00 -F7 -FB -00 -83 -FB -00 -83 -83 -00 -7C -7C -00 -00 -08 -48 -02 -42 -3E -00 -00 -40 -40 -00 -BF -BF -00 -AD -BD -00 -B7 -BD -00 -AD -C1 -00 -B7 -C1 -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -08 -08 -00 -00 -40 -40 -00 -BF -BF -00 -AD -81 -00 -B7 -81 -00 -AD -BD -00 -B7 -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -42 -02 -00 -00 -40 -40 -00 -BF -BF -00 -AD -BF -00 -B7 -BF -00 -AD -BD -00 -B7 -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -02 -3E -02 -00 -00 -40 -40 -00 -BF -BF -00 -AD -BF -00 -B7 -BF -00 -AD -BF -00 -B7 -BF -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -52 -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -AD -00 -FD -AD -00 -F7 -F7 -00 -FD -F7 -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -52 -3E -00 -00 -40 -40 -00 -BF -BF -00 -F7 -C3 -00 -FD -C3 -00 -F7 -FD -00 -FD -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -08 -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -B7 -00 -FD -B7 -00 -F7 -FD -00 -FD -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -3C -02 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -FD -BD -00 -F7 -F7 -00 -FD -F7 -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -42 -02 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BD -00 -81 -BD -00 -9D -FD -00 -81 -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -10 -10 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BD -00 -81 -BD -00 -9D -BD -00 -81 -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -42 -42 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BD -00 -81 -BD -00 -9D -BB -00 -81 -BB -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -42 -02 -42 -00 -00 -40 -40 -00 -BF -BF -00 -9D -BF -00 -81 -BF -00 -9D -BF -00 -81 -BF -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -62 -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -9D -00 -BD -9D -00 -F7 -F7 -00 -BD -F7 -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -62 -02 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BF -00 -BD -BF -00 -F7 -BD -00 -BD -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -08 -10 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -81 -00 -BD -81 -00 -F7 -BD -00 -BD -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -40 -42 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -BD -BD -00 -F7 -EF -00 -BD -EF -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -C3 -00 -F7 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -10 -10 -00 -00 -40 -40 -00 -BF -BF -00 -C3 -BD -00 -F7 -BD -00 -C3 -83 -00 -F7 -83 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C3 -C3 -00 -F7 -C3 -00 -C3 -87 -00 -F7 -87 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -3C -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C3 -81 -00 -F7 -81 -00 -C3 -BF -00 -F7 -BF -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -3C -3E -00 -00 -40 -40 -00 -BF -BF -00 -C1 -C3 -00 -C3 -C3 -00 -C1 -C1 -00 -C3 -C1 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C1 -81 -00 -C3 -81 -00 -C1 -C3 -00 -C3 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -3E -10 -00 -00 -40 -40 -00 -BF -BF -00 -C1 -F7 -00 -C3 -F7 -00 -C1 -C3 -00 -C3 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -7E -3C -00 -00 -40 -40 -00 -BF -BF -00 -C1 -C3 -00 -C3 -C3 -00 -C1 -EF -00 -C3 -EF -00 -BF -BF -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -18 -08 -08 -3C -3C -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -C3 -00 -81 -C3 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -08 -18 -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -83 -00 -81 -83 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -08 -3C -00 -00 -7E -7E -00 -81 -81 -00 -E7 -C3 -00 -81 -C3 -00 -E7 -87 -00 -81 -87 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -7E -7E -00 -00 -7E -7E -00 -81 -81 -00 -E7 -81 -00 -81 -81 -00 -E7 -81 -00 -81 -81 -00 -81 -81 -00 -7E -7E -00 -00 -18 -08 -08 -3C -7E -00 -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -00 -18 -08 -08 -7E -3C -00 -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -7E -7E -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -18 -08 -3C -7E -7E -00 -00 -10 -00 -00 -00 -10 -00 -7E -7E -7E -7E -00 -00 -00 -00 -00 -10 -00 -7E -7E -7E -7E -00 -00 -00 -00 -28 -18 -18 -42 -42 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BD -00 -BF -BD -00 -D7 -BD -00 -BF -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -18 -28 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BD -00 -BF -BD -00 -D7 -BD -00 -BF -BD -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -18 -42 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BD -00 -BF -BD -00 -D7 -BB -00 -BF -BB -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -40 -02 -00 -00 -40 -40 -00 -BF -BF -00 -D7 -BF -00 -BF -BF -00 -D7 -BF -00 -BF -BF -00 -BF -BF -00 -40 -40 -00 -00 -28 -18 -18 -40 -40 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -28 -18 -18 -02 -42 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -28 -18 -42 -40 -40 -00 -00 -00 -78 -38 -1C -38 -00 -40 -40 -40 -40 -00 -1C -78 -38 -1C -38 -00 -40 -40 -40 -40 -00 -00 -00 -00 -08 -28 -28 -0C -0C -00 -00 -7C -7C -00 -83 -83 -00 -F7 -C3 -00 -83 -C3 -00 -F7 -BD -00 -83 -BD -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -28 -08 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -BD -00 -83 -BD -00 -F7 -83 -00 -83 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -28 -42 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -BF -00 -83 -BF -00 -F7 -BD -00 -83 -BD -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -7C -04 -00 -00 -7C -7C -00 -83 -83 -00 -F7 -83 -00 -83 -83 -00 -F7 -83 -00 -83 -83 -00 -83 -83 -00 -7C -7C -00 -00 -08 -28 -28 -7C -7C -00 -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -00 -08 -28 -28 -04 -0C -00 -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -7C -7C -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -28 -0C -7C -7C -00 -00 -30 -44 -44 -20 -10 -10 -7C -7C -7C -7C -00 -20 -44 -44 -20 -10 -10 -7C -7C -7C -7C -00 -00 -00 -00 -08 -48 -48 -02 -02 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -FD -BD -00 -F7 -C1 -00 -FD -C1 -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -48 -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -81 -00 -FD -81 -00 -F7 -BD -00 -FD -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -48 -3E -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BF -00 -FD -BF -00 -F7 -BD -00 -FD -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -02 -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BF -00 -FD -BF -00 -F7 -BF -00 -FD -BF -00 -BF -BF -00 -40 -40 -00 -00 -08 -48 -48 -42 -02 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -08 -48 -48 -08 -02 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -48 -02 -02 -02 -00 -00 -10 -44 -44 -20 -10 -00 -40 -40 -40 -40 -00 -20 -44 -44 -20 -10 -00 -40 -40 -40 -40 -00 -00 -00 -00 -08 -7E -7E -42 -42 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -BD -BD -00 -F7 -FD -00 -BD -FD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -7E -08 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -BD -BD -00 -F7 -BD -00 -BD -BD -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -7E -02 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BD -00 -BD -BD -00 -F7 -BB -00 -BD -BB -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -42 -10 -00 -00 -40 -40 -00 -BF -BF -00 -F7 -BF -00 -BD -BF -00 -F7 -BF -00 -BD -BF -00 -BF -BF -00 -40 -40 -00 -00 -08 -7E -7E -42 -42 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -08 -7E -7E -10 -42 -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -08 -7E -42 -42 -42 -00 -00 -10 -78 -44 -20 -10 -00 -40 -40 -40 -40 -00 -20 -78 -44 -20 -10 -00 -40 -40 -40 -40 -00 -00 -00 -00 -3E -08 -08 -3C -3C -00 -00 -40 -40 -00 -BF -BF -00 -C1 -C3 -00 -C3 -C3 -00 -C1 -C3 -00 -C3 -C3 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -08 -3E -00 -00 -40 -40 -00 -BF -BF -00 -C1 -BD -00 -C3 -BD -00 -C1 -83 -00 -C3 -83 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -08 -3C -00 -00 -40 -40 -00 -BF -BF -00 -C1 -C3 -00 -C3 -C3 -00 -C1 -87 -00 -C3 -87 -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -3C -10 -00 -00 -40 -40 -00 -BF -BF -00 -C1 -81 -00 -C3 -81 -00 -C1 -BF -00 -C3 -BF -00 -BF -BF -00 -40 -40 -00 -00 -3E -08 -08 -3C -3C -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -3E -08 -08 -10 -3C -00 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -40 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -3E -08 -3C -3C -3C -00 -00 -38 -40 -38 -20 -0C -10 -40 -40 -40 -40 -00 -1C -40 -38 -20 -0C -10 -40 -40 -40 -7E -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -FF -FF -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -40 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -4A -4B -4C -4D -4E -4F -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -5A -5B -5C -5D -5E -5F -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -39 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -38 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -FF -00 -00 -00 -FF -00 -23 -0D -0D -23 -05 -00 -00 -00 -16 -01 -01 -00 -06 -00 -0B -00 -01 -00 -01 -00 -06 -00 -10 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -3C -40 -00 -FF -CC -01 -F9 -BF -00 -00 -00 -34 -08 -FF -35 -08 -01 -38 -00 -00 -E3 -60 -35 -61 -B6 -5C -B6 -5C -CB -5C -80 -60 -CA -5C -71 -61 -74 -61 -7F -60 -BB -6C -76 -61 -76 -61 -7B -61 -00 -92 -5C -10 -02 -00 -00 -00 -00 -00 -00 -75 -EA -88 -1A -00 -00 -12 -14 -00 -58 -FF -00 -00 -21 -00 -5B -21 -16 -CE -40 -00 -58 -13 -12 -21 -16 -01 -38 -00 -38 -00 -00 -00 -00 -03 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -01 -04 -03 -05 -05 -00 -00 -00 -14 -35 -05 -05 -00 -00 -00 -00 -00 -FF -BF -FF -FF -F4 -09 -A8 -10 -4B -F4 -09 -C4 -15 -53 -81 -0F -C4 -15 -52 -F4 -09 -C4 -15 -50 -80 -00 -00 -12 -00 -EA -55 -4C -41 -20 -74 -65 -73 -74 -20 -33 -0E -00 -00 -03 -00 -00 -0D -00 -00 -18 -00 -EA -28 -61 -64 -61 -70 -74 -65 -64 -20 -74 -6F -20 -31 -32 -38 -0E -00 -00 -80 -00 -00 -29 -0D -00 -00 -12 -00 -EA -62 -79 -20 -4A -61 -6E -20 -42 -6F -62 -72 -6F -77 -73 -6B -69 -0D -00 -00 -0D -00 -EA -6C -69 -63 -65 -6E -73 -65 -20 -47 -50 -4C -0D -00 -0A -13 -00 -F1 -69 -70 -6F -72 -74 -3D -36 -35 -35 -33 -35 -0E -00 -00 -FF -FF -00 -0D -00 -0B -15 -00 -F1 -63 -70 -6F -72 -74 -3D -69 -70 -6F -72 -74 -2D -31 -0E -00 -00 -01 -00 -00 -0D -00 -0C -36 -00 -F5 -AC -31 -0E -00 -00 -01 -00 -00 -2C -30 -0E -00 -00 -00 -00 -00 -3B -D9 -31 -0E -00 -00 -01 -00 -00 -3B -22 -20 -20 -20 -20 -20 -20 -20 -20 -55 -4C -41 -20 -74 -65 -73 -74 -20 -33 -20 -62 -79 -20 -4A -42 -22 -0D -00 -0D -1D -00 -F1 -66 -74 -3D -33 -32 -37 -36 -38 -0E -00 -00 -00 -80 -00 -2B -C0 -34 -39 -31 -35 -32 -0E -00 -00 -00 -C0 -00 -0D -00 -0E -1E -00 -F5 -23 -30 -0E -00 -00 -00 -00 -00 -3B -AC -31 -0E -00 -00 -01 -00 -00 -2C -38 -0E -00 -00 -08 -00 -00 -3B -66 -74 -0D -00 -0F -14 -00 -EB -61 -3D -30 -0E -00 -00 -00 -00 -00 -CC -33 -31 -0E -00 -00 -1F -00 -00 -0D -00 -10 -11 -00 -F4 -31 -36 -33 -38 -34 -0E -00 -00 -00 -40 -00 -2B -61 -2C -61 -0D -00 -11 -1A -00 -F4 -32 -32 -35 -32 -38 -0E -00 -00 -00 -58 -00 -2B -61 -2C -36 -34 -0E -00 -00 -40 -00 -00 -2B -61 -0D -00 -12 -03 -00 -F3 -61 -0D -00 -13 -13 -00 -F1 -73 -74 -61 -72 -74 -3D -31 -34 -33 -32 -39 -0E -00 -00 -F9 -37 -00 -0D -00 -14 -23 -00 -FA -66 -74 -3E -37 -30 -30 -30 -30 -0E -91 -08 -B8 -00 -00 -CB -F1 -73 -74 -61 -72 -74 -3D -31 -34 -33 -35 -35 -0E -00 -00 -13 -38 -00 -0D -00 -15 -10 -00 -F1 -74 -24 -3D -22 -22 -3A -F1 -76 -3D -69 -70 -6F -72 -74 -0D -00 -16 -0C -00 -ED -32 -30 -30 -30 -0E -00 -00 -D0 -07 -00 -0D -00 -17 -28 -00 -F5 -23 -30 -0E -00 -00 -00 -00 -00 -3B -AC -31 -0E -00 -00 -01 -00 -00 -2C -38 -0E -00 -00 -08 -00 -00 -3B -22 -69 -70 -6F -72 -74 -3A -22 -3B -74 -24 -3B -0D -00 -18 -10 -00 -F1 -74 -24 -3D -22 -22 -3A -F1 -76 -3D -63 -70 -6F -72 -74 -0D -00 -19 -0C -00 -ED -32 -30 -30 -30 -0E -00 -00 -D0 -07 -00 -0D -00 -1A -17 -00 -F5 -23 -30 -0E -00 -00 -00 -00 -00 -3B -22 -20 -63 -70 -6F -72 -74 -3A -22 -3B -74 -24 -0D -00 -64 -09 -00 -F1 -74 -3D -73 -74 -61 -72 -74 -0D -00 -65 -14 -00 -EB -6C -3D -33 -0E -00 -00 -03 -00 -00 -CC -32 -31 -0E -00 -00 -15 -00 -00 -0D -00 -66 -0E -00 -F5 -AC -6C -2C -31 -0E -00 -00 -01 -00 -00 -3B -74 -0D -00 -67 -1C -00 -EB -63 -3D -38 -0E -00 -00 -08 -00 -00 -CC -33 -30 -0E -00 -00 -1E -00 -00 -CD -33 -0E -00 -00 -03 -00 -00 -0D -00 -68 -07 -00 -F5 -AC -6C -2C -63 -3B -0D -00 -69 -1D -00 -F5 -23 -30 -0E -00 -00 -00 -00 -00 -3B -AC -31 -0E -00 -00 -01 -00 -00 -2C -31 -0E -00 -00 -01 -00 -00 -3B -74 -0D -00 -6A -0A -00 -F1 -76 -3D -C0 -72 -65 -61 -64 -70 -0D -00 -6B -0A -00 -F1 -69 -3D -C0 -63 -6F -6E -74 -70 -0D -00 -6C -07 -00 -F1 -74 -24 -3D -22 -22 -0D -00 -6D -0C -00 -ED -32 -31 -30 -30 -0E -00 -00 -34 -08 -00 -0D -00 -6E -07 -00 -F5 -DD -69 -3B -74 -24 -0D -00 -6F -0D -00 -F1 -74 -3D -74 -2B -31 -0E -00 -00 -01 -00 -00 -0D -00 -70 -03 -00 -F3 -63 -0D -00 -71 -03 -00 -F3 -6C -0D -00 -72 -0B -00 -EC -31 -30 -30 -0E -00 -00 -64 -00 -00 -0D -07 -D0 -13 -00 -F1 -75 -3D -BA -28 -76 -2F -34 -30 -39 -36 -0E -00 -00 -00 -10 -00 -29 -0D -07 -D1 -0C -00 -ED -32 -32 -30 -30 -0E -00 -00 -98 -08 -00 -0D -07 -D2 -12 -00 -F1 -76 -3D -76 -2D -34 -30 -39 -36 -0E -00 -00 -00 -10 -00 -2A -75 -0D -07 -D3 -12 -00 -F1 -75 -3D -BA -28 -76 -2F -32 -35 -36 -0E -00 -00 -00 -01 -00 -29 -0D -07 -D4 -0C -00 -ED -32 -32 -30 -30 -0E -00 -00 -98 -08 -00 -0D -07 -D5 -11 -00 -F1 -76 -3D -76 -2D -32 -35 -36 -0E -00 -00 -00 -01 -00 -2A -75 -0D -08 -34 -11 -00 -F1 -75 -3D -BA -28 -76 -2F -31 -36 -0E -00 -00 -10 -00 -00 -29 -0D -08 -35 -0C -00 -ED -32 -32 -30 -30 -0E -00 -00 -98 -08 -00 -0D -08 -36 -10 -00 -F1 -75 -3D -76 -2D -31 -36 -0E -00 -00 -10 -00 -00 -2A -75 -0D -08 -98 -25 -00 -F1 -74 -24 -3D -74 -24 -2B -22 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -41 -42 -43 -44 -45 -46 -22 -28 -75 -2B -31 -0E -00 -00 -01 -00 -00 -29 -0D -08 -99 -02 -00 -FE -0D -23 -28 -0D -00 -FD -34 -39 -31 -35 -31 -0E -00 -00 -FF -BF -00 -0D -23 -29 -05 -00 -EF -22 -22 -AF -0D -23 -2A -02 -00 -F7 -0D -A9 -70 -6F -72 -F4 -00 -00 -FF -FF -00 -A3 -70 -6F -72 -F4 -00 -00 -FE -FF -00 -B2 -65 -61 -64 -F0 -00 -00 -4D -C0 -00 -A3 -6F -6E -74 -F0 -00 -00 -70 -C0 -00 -A6 -F4 -91 -08 -80 -00 -00 -E1 -00 -00 -20 -00 -00 -00 -00 -1F -00 -00 -00 -00 -01 -00 -00 -0F -00 -02 -B3 -74 -61 -72 -F4 -00 -00 -F9 -37 -00 -76 -00 -00 -04 -00 -00 -75 -00 -00 -00 -00 -00 -74 -00 -00 -13 -38 -00 -EC -00 -00 -06 -00 -00 -00 -00 -15 -00 -00 -00 -00 -01 -00 -00 -65 -00 -02 -E3 -00 -00 -0E -00 -00 -00 -00 -1E -00 -00 -00 -00 -03 -00 -00 -67 -00 -02 -69 -00 -00 -01 -00 -00 -54 -00 -00 -80 -EF -22 -22 -0D -80 -00 -00 -98 -08 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 -00 diff --git a/cores/Spectrum/testcontenida.asm b/cores/Spectrum/testcontenida.asm deleted file mode 100644 index f09c39a..0000000 --- a/cores/Spectrum/testcontenida.asm +++ /dev/null @@ -1,43 +0,0 @@ - org 0 - di - ld sp,32768 - ld hl,Codigo - ld de,16384 - ld bc,LCodigo -Espera1: in a,(255) - cp 255 - jr nz,Espera1 -Espera2: in a,(255) - cp 255 - jr z,Espera2 - ldir -Otra: call 16384 - jp Otra - -Codigo: in a,(255) - cp 255 - jr z,Codigo - out (254),a - out (254),a - nop - out (254),a - out (254),a - nop - ld bc,40feh - out (c),a - out (c),a - out (c),a - out (c),a - out (c),a - out (c),a - dec c - out (c),a - out (c),a - out (c),a - out (c),a - out (c),a - out (c),a - ret -LCodigo equ $-Codigo - - end diff --git a/cores/Spectrum/testcontenida.bin b/cores/Spectrum/testcontenida.bin deleted file mode 100644 index 438c8b3c78dd2ceecb3611769f9a46e42bbd5467..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmext$k3pu$RNnzz^Kb``~ScH3co<4#;>;<&N4V0mIjMy{JQ+_@;?SJ!T8VNZ6yNo KBA9P0PXYj&9xn0# diff --git a/cores/Spectrum/testcontenida_hex.txt b/cores/Spectrum/testcontenida_hex.txt deleted file mode 100644 index 57453bf..0000000 --- a/cores/Spectrum/testcontenida_hex.txt +++ /dev/null @@ -1,78 +0,0 @@ -F3 -31 -00 -80 -21 -21 -00 -11 -00 -40 -01 -2D -00 -DB -FF -FE -FF -20 -FA -DB -FF -FE -FF -28 -FA -ED -B0 -CD -00 -40 -C3 -1B -00 -DB -FF -FE -FF -28 -FA -D3 -FE -D3 -FE -00 -D3 -FE -D3 -FE -00 -01 -FE -40 -ED -79 -ED -79 -ED -79 -ED -79 -ED -79 -ED -79 -0D -ED -79 -ED -79 -ED -79 -ED -79 -ED -79 -ED -79 -C9 diff --git a/cores/Spectrum/testflashspi.tap b/cores/Spectrum/testflashspi.tap deleted file mode 100644 index d77f30281e96a47b07371c64d3921592433ac80a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401 zcmWe;U|=XoEiNf8$W%~Js9^ltP{F8J#rU6rON-&YnTe^nAs+*S^&bWuV<64Uz+eRw zv@kLU3I1i!F#ys)z{?<#iK^NND8YoT8mkdl1)=8RuuRUF;dQ1h$YG2O3}=iCK&npw zE&G^fyC2DQR&Nc#QYk>G&zZao8pQYrYAP>-5fj5BUWOD)hL5?nyEO9j4b6bI2rw{c z0*y5W+1LcKG1oRv7bc^Xi!Akzm!V0B;a9GWAxJS71H(eBV={ diff --git a/cores/Spectrum/testmmc.tap b/cores/Spectrum/testmmc.tap deleted file mode 100644 index 4d70459cd3f316128ba6ab4d16da6b6d3a0490e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmWe;U|=XoEiTE;O;%7)P-S9hP-VKR&h(#wONimVu^}G=gFFL+4v1!CVBlpC(PDU= zXA9+?u>cBlFfdr%H!}vZ?12i6Oih8T|3Ii a5kc~6W?p7;Cd8}zR4^kSDVAX#5(fa=x?}MG diff --git a/cores/Spectrum/testnmi.asm b/cores/Spectrum/testnmi.asm deleted file mode 100644 index e0690b4..0000000 --- a/cores/Spectrum/testnmi.asm +++ /dev/null @@ -1,84 +0,0 @@ - org 28000 -Main di - ld bc,7ffdh - ld a,16+6 ;pagina 6 de RAM - out (c),a - ld hl,Rom - ld de,0c000h ;Copiar ROM NMI a esta dirección - ld bc,LRom - ldir - ld bc,7ffdh - ld a,16 ;Restablecemos página 0 de RAM - out (c),a - ei - ret - -Rom ;Esto se ejecuta a partir de C000h. - ;Guardar puntero de pila, establecer pila privada y guardar registros - ld (OldSP-Rom+0c000h),sp - ld sp,Stack-Rom+0c000h - push af - push bc - push de - push hl - - ;Salvaguarda zona de atributos - ld hl,22528 - ld de,Buffer-Rom+0c000h - ld bc,768 - ldir - - ;Pon el banner de PAUSE - ld hl,Banner-Rom+0c000h - ld de,22528+32*8+1 - ld b,7 -BucBanner push bc - ld bc,29 - ldir - inc de - inc de - inc de - pop bc - djnz BucBanner - - ;Espera una tecla para terminar pausa -BucWaitKey xor a - in a,(254) - and 31 - cp 31 - jr z,BucWaitKey - - ;Restaura zona de atributos - ld hl,Buffer-Rom+0c000h - ld de,22528 - ld bc,768 - ldir - - ;Restablecer registros y puntero de pila anterior - pop hl - pop de - pop bc - pop af - ld sp,(OldSP-Rom+0c000h) - - ;Saltar a direccion de fin de NMI - jp 0069h - -Banner db 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 - db 000,255,255,255,000,000,000,255,255,255,000,000,255,000,000,000,255,000,000,255,255,255,000,000,255,255,255,255,000 - db 000,255,000,000,255,000,255,000,000,000,255,000,255,000,000,000,255,000,255,000,000,000,000,000,255,000,000,000,000 - db 000,255,255,255,000,000,255,255,255,255,255,000,255,000,000,000,255,000,000,255,255,255,000,000,255,255,255,255,000 - db 000,255,000,000,000,000,255,000,000,000,255,000,255,000,000,000,255,000,000,000,000,000,255,000,255,000,000,000,000 - db 000,255,000,000,000,000,255,000,000,000,255,000,000,255,255,255,000,000,000,255,255,255,000,000,255,255,255,255,000 - db 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 - -OldSP dw 0 - - ds 16 ;16 bytes de pila -Stack equ $ - -Buffer equ $ - -LRom equ $-Rom - end Main - diff --git a/cores/Spectrum/testrom.asm b/cores/Spectrum/testrom.asm deleted file mode 100644 index c8720f0..0000000 --- a/cores/Spectrum/testrom.asm +++ /dev/null @@ -1,185 +0,0 @@ -ZXUNOREGADDR equ 0fc3bh -ZXUNOREGDATA equ 0fd3bh -MASTERCONF equ 0 -MASTERMAPPER equ 1 -FLASHSPI equ 2 -FLASHCS equ 3 - -; Selecciona un registro ZXUno de forma que los siguientes IN/OUTs a (C) -; se hagan en el registro deseado -select macro dir - ld bc,ZXUNOREGADDR - ld a,dir - out (c),a - inc b - endm - -; Escribe "dato" en el registro ZXUno de direccion "dir" -wreg macro dir,dato - ld bc,ZXUNOREGADDR - ld a,dir - out (c),a - inc b - ld a,dato - out (c),a - endm - -; Lee un byte desde el registro ZXUno cuya dirección es "dir" y lo almacena en "dest" (un registro de 8 bits) -rreg macro dir,dest - ld bc,ZXUNOREGADDR - ld a,dir - out (c),a - inc b - in dest,(c) - endm - -;-------------------------------------------------------------------------- - - org 32768 -Main di - ld sp,49151 ;stack fuera de la pagina de memoria que tocaremos - - ; Borramos la pantalla shadow, ya que Open SE IV parece que no la borra - wreg MASTERMAPPER,7 ;paginamos la pantalla shadow - call BorraBloque - - ; Elige uno, para probar - ;------------------------------------------------- ROM de 48K con DIVMMC (se copia la interna) - wreg MASTERMAPPER,11 ;Donde estaría la ROM 3 - ld hl,0 - ld de,49152 - ld bc,16384 - ldir - ld bc,1ffdh - ld a,2 - out (c),a - ld b,7fh - ld a,10h - out (c),a - call CopiaESXDOS - wreg MASTERCONF,010b ;Fin del modo boot. La nueva ROM está en su sitio y activada. DIVMMC está activado. - jp 0 ;Vamonos a ella. - ;------------------------------------------------- ROM del +3 con DIVMMC -; call CopiaPlus3 -; call CopiaESXDOS -; wreg MASTERCONF,2 ;Fin del modo boot. La nueva ROM está en su sitio y activada. DIVMMC está activado -; jp 0 ;Vamonos a ella. - ;------------------------------------------------- ROM SE IV con DIVMMC, sin NMI en DIVMMC -; call CopiaOpenSE -; ld bc,1ffdh -; ld a,2 -; out (c),a -; ld b,7fh -; ld a,10h -; out (c),a -; call CopiaESXDOS -; wreg MASTERCONF,110b ;Fin del modo boot. La nueva ROM está en su sitio y activada. DIVMMC está activado pero sin NMI -; jp 0 ;Vamonos a ella. - ;------------------------------------------------- - -CopiaESXDOS wreg MASTERMAPPER,16 ;Borramos los 128KB de la RAM del DIVMMC (bancos 16 a 23) - call BorraBloque - wreg MASTERMAPPER,17 - call BorraBloque - wreg MASTERMAPPER,18 - call BorraBloque - wreg MASTERMAPPER,19 - call BorraBloque - wreg MASTERMAPPER,20 - call BorraBloque - wreg MASTERMAPPER,21 - call BorraBloque - wreg MASTERMAPPER,22 - call BorraBloque - wreg MASTERMAPPER,23 - call BorraBloque - - wreg MASTERMAPPER,12 ;En los primeros 8KB del bloque 12 está la ROM del DIVMMC (ESXDOS) - - wreg FLASHCS,0 ;linea CS de la flash a nivel bajo. Necesario antes de emitir comandos SPI - wreg FLASHSPI,3 ;comando de lectura de la flash - ld a,04h ; - out (c),a ; Dirección donde se encuentra - ld a,80h ; la ROM del ESXDOS en la flash: 048000h - out (c),a ; - ld a,00h ; - out (c),a ; A partir de aqui leemos secuencialmente - - in a,(c) ; Primera lectura que se descarta... - ld hl,49152 - ld de,8192 ; son solo 8K a copiar - call BucCopia - - wreg FLASHCS,1 - ret - -CopiaPlus3 wreg MASTERMAPPER,8 ;primera página de RAM que se convertirá en ROM (la 8) - wreg FLASHCS,0 ;linea CS de la flash a nivel bajo. Necesario antes de emitir comandos SPI - wreg FLASHSPI,3 ;comando de lectura de la flash - ld a,03h ; - out (c),a ; Dirección donde se encuentra - ld a,00h ; la ROM en la flash: 030000h - out (c),a ; - ld a,00h ; - out (c),a ; A partir de aqui leemos secuencialmente - - in a,(c) ; Primera lectura que se descarta... - - call CopiaBloque ;copia 16K de la flash a la página 8 - - wreg MASTERMAPPER,9 - select FLASHSPI - - call CopiaBloque ;copia 16K de la flash a la página 9 - - wreg MASTERMAPPER,10 - select FLASHSPI - - call CopiaBloque ;etc... - - wreg MASTERMAPPER,11 - select FLASHSPI - - call CopiaBloque - - wreg FLASHCS,1 ;Deseleccionar flash - ret - - -CopiaOpenSE wreg MASTERMAPPER,11 ;Solo copiamos la ROM 1 de la SE Basic, como ROM 3. - wreg FLASHCS,0 ;linea CS de la flash a nivel bajo - wreg FLASHSPI,3 ;comando de lectura de la flash - ld a,04h ; - out (c),a ; Dirección donde se encuentra - ld a,40h ; la ROM en la flash: 044000h - out (c),a ; - ld a,00h ; - out (c),a ; A partir de aqui leemos secuencialmente - - in a,(c) ; Primera lectura que se descarta... - - call CopiaBloque - - wreg FLASHCS,1 ;Deseleccionar flash - ret - -CopiaBloque ld hl,49152 - ld de,16384 -BucCopia in a,(c) ;leemos de la flash... - ld (hl),a ;...a memoria - inc hl - dec de - ld a,d - or e - jr nz,BucCopia - ret - - -BorraBloque ld hl,49152 - ld de,49153 - ld bc,16383 - ld (hl),l - ldir - ret - - end Main diff --git a/cores/Spectrum/testrom.tap b/cores/Spectrum/testrom.tap deleted file mode 100644 index 1f1c262a7b6ac5f8c4675c97cc38dcff48b393ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmWe;U|`6}PfSTIQUC&X1}+A725C=*{|sEb41bM{%+1XC7#RN7Gw?Eqh%&F zdd~Q6rqo{kBq(fkBYr03(CL+YO9= zR_LOHh`2dfOG)`4>K^pb%A7&3=u@-3ZZg^QMn?hTv1f67%EpBmCN(C666ME zkduJ!0f%c5Cg^ERwyzY5M)p|djsrIuyUa1Pr}{LfyW$>SwJ%&=A6BR z2r5p5g~-BO*oA=s3v(V+HKsG5YQPfMyyJl847dqk?>W4!C|8!Q+N|*XB#6&=fbqY5 J>Dvt_0|33#>#P6( diff --git a/cores/Spectrum/timings_pentagon128.png b/cores/Spectrum/timings_pentagon128.png deleted file mode 100644 index 1921e87ab30449833edc60cc12183d0e4d3313c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20113 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 diff --git a/cores/Spectrum/tld_zxuno.prj b/cores/Spectrum/tld_zxuno.prj index ad1fb09..1dcb0cc 100644 --- a/cores/Spectrum/tld_zxuno.prj +++ b/cores/Spectrum/tld_zxuno.prj @@ -6,21 +6,32 @@ vhdl work "T80.vhd" vhdl work "YM2149_linmix.vhd" vhdl work "T80a.vhd" verilog work "spi.v" +verilog work "scancode_to_speccy.v" verilog work "rom.v" -verilog work "pal_sync_generator_sinclair.v" -vhdl work "mapa_teclado_es.vhd" +verilog work "ps2_port.v" +verilog work "ps2mouse_to_kmouse.v" +verilog work "pll_drp.v" +verilog work "pal_sync_generator.v" verilog work "lut.v" verilog work "dp_memory.v" verilog work "zxunoregs.v" verilog work "ula_radas.v" verilog work "tv80_to_t80_wrapper.v" verilog work "turbosound.v" -vhdl work "ps2k_mcleod.vhd" +verilog work "scratch_register.v" +verilog work "scandoubler_ctrl.v" +verilog work "ps2_mouse_kempston.v" +verilog work "ps2_keyb.v" +verilog work "pll_top.v" +verilog work "nmievents.v" +verilog work "multiboot.v" verilog work "memory.v" verilog work "joystick_protocols.v" verilog work "flash_spi.v" verilog work "coreid.v" +verilog work "control_rasterint.v" verilog work "audio_management.v" verilog work "zxuno.v" -verilog work "relojes_pll.v" +verilog work "vga_scandoubler.v" +verilog work "cuatro_relojes.v" verilog work "tld_zxuno.v" diff --git a/cores/Spectrum/tld_zxuno.xst b/cores/Spectrum/tld_zxuno.xst index cabdc88..81f8d78 100644 --- a/cores/Spectrum/tld_zxuno.xst +++ b/cores/Spectrum/tld_zxuno.xst @@ -1,19 +1,18 @@ -set -tmpdir "xst/projnav.tmp" +set -tmpdir "projnav.tmp" set -xsthdpdir "xst" run -ifn tld_zxuno.prj --ifmt mixed +-infer_ramb8 No -ofn tld_zxuno -ofmt NGC --p xc6slx9-3-tqg144 +-p xc6slx9-2-tqg144 -top tld_zxuno -opt_mode Speed --opt_level 2 +-opt_level 1 -power NO -iuc NO --lso tld_zxuno.lso --keep_hierarchy NO --netlist_hierarchy as_optimized +-keep_hierarchy No +-netlist_hierarchy As_Optimized -rtlview Yes -glob_opt AllClockNets -read_cores YES @@ -21,25 +20,24 @@ run -cross_clock_analysis NO -hierarchy_separator / -bus_delimiter <> --case maintain +-case Maintain -slice_utilization_ratio 100 -bram_utilization_ratio 100 -dsp_utilization_ratio 100 --lc auto --reduce_control_sets auto --fsm_extract YES -fsm_encoding Auto --safe_implementation No --fsm_style lut +-lc Auto +-reduce_control_sets Auto +-fsm_extract NO +-fsm_style LUT -ram_extract Yes -ram_style Auto -rom_extract Yes -shreg_extract YES -rom_style Auto -auto_bram_packing NO --resource_sharing NO +-resource_sharing YES -async_to_sync YES -shreg_min_size 2 --use_dsp48 auto +-use_dsp48 Auto -iobuf YES -max_fanout 100000 -bufg 16 @@ -49,6 +47,6 @@ run -use_clock_enable Auto -use_sync_set Auto -use_sync_reset Auto --iob auto +-iob Auto -equivalent_register_removal YES -slice_utilization_ratio_maxmargin 5